我是perl的新手,是否可以在单行中编写嵌套的perl命令,如下所示(shell)
echo "I am `uname -n` and today is `date`"
我试过以下;但没有工作
my $i=0 ;
print "$i++\n" ;
print "localtime()" ;
答案 0 :(得分:4)
您只能将变量插入到双引号字符串中。但这些变量可以是匿名的,允许您提供表达式来生成它们。这看起来像这样:
my $i = 0;
print "Number ${\($i++)} date ${\scalar localtime}";
您也可以使用@{[ some-expression ]}
代替${\ some-expression }
。在任何一种情况下,您都有一个表达式并且您创建了对其值的引用(或者在前一种情况下,创建了包含它的匿名数组),然后在字符串中取消引用它。表达式将在列表上下文中,因此您可能需要添加scalar
,如上所述。
答案 1 :(得分:3)
是否可以在单行中编写嵌套的perl命令,如下(shell)
当然可以。
print "I am " . `uname -n` . "and today is " . `date`;
Perl的反引号运算符(`)在双引号(""
)内不起作用。所以,字符串"我是",uname -n
的输出,字符串"今天是" date
的输出由点运算符(.
)连接。
我不明白你问题的后半部分对前一部分的意义(我认为你已经回答过了)。