小编Sur*_*ren的帖子

如何使用Getopt :: Std设置默认值?

我试图在我的Perl脚本中使用Getopt :: Std从命令行收集值.

use Getopt::Std;
$Getopt::Std::STANDARD_HELP_VERSION = 1;
getopts('i:o:p:');
my $inputfile = our $opt_i;
my $outputfile = our $opt_o;
my $parameter_value = our $opt_p;
Run Code Online (Sandbox Code Playgroud)

这里前两个变量($ inputfile,$ outputfile)是必需的,但最后一个变量($ parameter_value)是可选的,可以忽略.

我试图-p在命令行忽略该标志时默认将一些值设置为最后一个变量($ parameter_value).

我试过用这个:

my $parameter_value = our $opt_p || "20";
Run Code Online (Sandbox Code Playgroud)

在命令行中忽略-p标志时,它传递正确的值.但问题是当我从命令行提供一些值时(例如-p 58),相同的值20被传递给程序而不是我从命令行传递的58.

能否指出我在这里犯的错误,请你帮帮我吧?

谢谢.

perl getopt

10
推荐指数
2
解决办法
1万
查看次数

如何在mac leopard的不同颜色的ib终端中查看不同的文件扩展名

我试图在 ls 命令之后根据扩展名获取目录和文件的彩色列表。最近我从 Linux 切换到 mac leopard。我的主目录中没有 .bashrc 文件,因此我创建了一个包含以下内容的文件。这只是做了一点我想要的事情(只有彩色目录)。我还想以不同的颜色查看具有不同扩展名的文件。添加什么以及在哪里添加?提前谢谢:)

\n\n
# Define how Bash prompt looks like:\n#\n# User @ Host - working dir\n#export PS1='\\u@\\h\\w$ '\nexport PS1='\\u@\\h\\w: '\n\n# Cli Colors\nexport CLICOLOR=1\n# use blue for dir\xe2\x80\x99s\nexport LSCOLORS=exfxcxdxbxegedabagacad\n\n# Alias\n#\n#\nalias ls='ls -al'\n
Run Code Online (Sandbox Code Playgroud)\n

macos

4
推荐指数
1
解决办法
4007
查看次数

如何在Perl中对每列数据求和?

我有一个包含以下数据的文件:

1==0==2
5==3==2
7==1==0

如何逐列添加数值.我需要总结和打印它

1==0==2
5==3==2
7==1==0
13==4==4   * summation column wise (This is what I want to calculate using perl)

我想你误解了我的问题.我已经再次编辑了我的问题...我的意思是我在表格中有很多这样的列13 == 4 == 4是我希望添加到我的文件中的总和列.

我能够只为第一列做到这一点,但我还需要学习如何为所有其他列.

我的代码:

#!/usr/bin/perl

use strict;
use warnings;

open (TEMPTABLE,"temp_data") or die "Cannot open file\n";

my @temp_table_data=< TEMPTABLE > ;
chomp @temp_table_data;

my $total_sum;
for(my $i=0;$i<=$#temp_table_data;$i++)
{
print "$temp_table_data[$i]\n";
my @col=split('==',$temp_table_data[$i]);
for(my $m=0;$m<1;$m++)
{
$total_sum+=$col[$m];
}    
}
print "$total_sum\n";

OUTPUT:
1==0==2
5==3==2
7==1==0
13
Run Code Online (Sandbox Code Playgroud)

我不想总结ROW而是COLUMN.

perl

-1
推荐指数
1
解决办法
5920
查看次数

标签 统计

perl ×2

getopt ×1

macos ×1