我有一个简单的问题。我一直在使用zoidberg perl shell让我自己熟悉perl交互式。在我充实脚本之前,我喜欢能够在飞行中测试我的东西。 (我是新手学习者。)
我的问题是,在shell中我可以执行以下操作:
@a = `df -h | grep /dev/mapper | cut -c 48-`
for $i (@a) { @b=`ls $i` }
print @b;
然而,当我把它放在linux的脚本中时:
#!/bin/perl
运行脚本时出现以下错误:
syntax error at perl_diskstats.perl line 5, near "$i ( "
Execution of perl_diskstats.perl aborted due to compilation errors.
我在这里做了一些明显的事吗?我究竟做错了什么?我以为格式是..
foreach $var (@array) { codeblock }
......对吗?
答案 0 :(得分:7)
你在第一行末尾错过了一个分号。
答案 1 :(得分:0)
此外,您还缺少use strict
和my
声明。
use strict;
my @a = `df -h | grep /dev/mapper | cut -c 48-`;
my @b;
for my $i (@a) { @b=`ls $i` }
print @b;
现在开始使用use strict
的习惯,而你还在开始。它可以帮助您长期保存。