有一个更好的方法吗?我正在尝试根据标量的值构建2个数组:
my (@x, @y);
my $r = [$v1, $v2, $v3];
push @x, $r if $s eq 'YES';
push @y, $r if $s ne 'YES';
Run Code Online (Sandbox Code Playgroud)
我试过用:
push $s eq 'YES' ? @x : @y, $r;
Run Code Online (Sandbox Code Playgroud)
有没有parens,但没有去.
错误是:
Type of arg 1 to push must be array (not null operation) at comp_report.pl line 79, near "$r;"
Run Code Online (Sandbox Code Playgroud) 支持基于视图的表的列自动调整大小请求需要什么?在这一点上,文档真的不清楚,似乎与基于单元格的观点有关.
这是为了处理列分隔符的双击.
我可以通过实现tableView:sizeToFitWidthOfColumn:a NSTableView和 outlineView:sizeToFitWidthOfColumn:for 来实现这项工作NSOutlineView,但是文档说这只是大表所必需的.有没有更正确的方法来做到这一点?
- (CGFloat)tableView:(NSTableView*)tableView sizeToFitWidthOfColumn:(NSInteger)column {
NSUInteger n = [self numberOfRowsInTableView:tableView];
CGFloat w = 30;
NSTableColumn* col = [[tableView tableColumns] objectAtIndex:column];
for (int i=0; i<MIN(n, 100); ++i) {
NSView* vw = [self tableView:tableView viewForTableColumn:col row:i];
w = MAX(w, [vw frame].size.width);
}
return w;
}
Run Code Online (Sandbox Code Playgroud) 在Perl中,这需要6行:
my $rpt = 'report.txt';
open my $f, '>', $rpt or die "$0: cannot open $rpt: $!\n";
select $f;
print_report($a, $b, $c);
close $f;
select STDOUT;
Run Code Online (Sandbox Code Playgroud)
在Bash中,这需要1行:
print_report $a $b $c >report.txt
Run Code Online (Sandbox Code Playgroud)
有没有办法减少Perl代码?