- 论坛徽章:
- 0
|
觉得一句话命令行好方便,很多时候大费周章写个脚本不值当;但是基本没写过,今天有个机会,就想试试,果然遇到问题,还请大家指教,多谢
目的:一个文本文件中,第二列是数字,共上千行,我想取这些数字的总和;我的尝试命令如下:- less S_k31.txt |cut -f2|perl -MList::Util -e '@arr=<STDIN>;print $sum=sum @arr;'
复制代码 想到List::Util这个模块里面有sum命令,所以调用了这个模块先。 报错如下:
“Array found where operator expected at -e line 1, at end of line
(Do you need to predeclare sum?)”
貌似调用不成功。我继续研究,发现不论在脚本中还是命令行中,必须得声明sum这个方法才能使用;
这样,就能正常运行了。
我有两个疑问:
1 为啥这样呢? 我原以为use一个模块,默认的导入列表就等于全部命令列表……sum这个命令也不与其他core module冲突吧;
2 像这种需要声明方法的用法,怎么样写在命令行中? 我试过 perl -MList::Util qw(sum)了…… 果然不行……:wink:
谢谢各位~ |
|