首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么这段Perl代码可以从shell运行,而不能从脚本运行?

为什么这段Perl代码可以从shell运行,而不能从脚本运行?
EN

Stack Overflow用户
提问于 2012-06-14 06:27:13
回答 2查看 101关注 0票数 2

我有一个简单的问题。我一直在使用zoidberg perl shell以交互方式熟悉perl。我喜欢在充实脚本之前能够快速测试我的东西。(我是一个新手。)

我的问题是,在shell中,我可以执行以下操作:

代码语言:javascript
复制
@a = `df -h | grep /dev/mapper | cut -c 48-`

for $i (@a) { @b=`ls $i` }
print @b;

但是,当我在linux中将其放入脚本中时:

代码语言:javascript
复制
#!/bin/perl

当我运行脚本时,我看到了以下错误:

代码语言:javascript
复制
syntax error at perl_diskstats.perl line 5, near "$i ( "
Execution of perl_diskstats.perl aborted due to compilation errors.

我在这里做了什么显而易见的事情吗?我到底做错了什么?我以为格式是..。

代码语言:javascript
复制
foreach $var (@array) { codeblock }

..。对吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-14 07:06:03

您的第一行末尾缺少一个分号。

票数 7
EN

Stack Overflow用户

发布于 2012-06-14 17:30:10

此外,您还缺少use strictmy声明。

代码语言:javascript
复制
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的习惯。从长远来看,它会拯救你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11024219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档