繁体   English   中英

perl如何像读取文件内容一样读取命令行参数

[英]perl How to read command line argument as if it's file content

我有一个接受文件名并打印文件内容的函数

#test.pl
while (<>) {
    print $_;
}
exit(0);

我想在命令行上运行它,而不是文件名,我想在不更改脚本的情况下使用实际内容作为参数,类似于匿名FIFO(例如shell中的“ <(...)”运算符)来代替文件名字符串及其内容?

这是一个shell问题,但您未指定哪个shell。

SH

将数据直接传递到STDIN是最简单的。

printf 'foo bar' | test.pl

printf 'foo\nbar\n' | test.pl

test.pl <<'.'
foo
bar
.

重击

除了sh的解决方案,您还可以使用以下方法:

test.pl <<<'foo bar'

test.pl <<<$'foo\nbar\n'

test.pl <( printf 'foo\nbar\n' )

最后一个避免使用STDIN。 (内部)这比其他解决方案要复杂,但是它允许您传递多个“虚拟文件”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM