我是新來的Perl和我使用Perl的單行用幾個簡單的Perl腳本我的任務一起。可以在Perl腳本中使用Perl單線程嗎?
我想知道,如果它能夠在代碼格式一堆單行結合,運行包含單行只是特定的文件?舉例來說,如果我有3個單行將被運行一個接一個,我可以把這些3單行名爲file.pl並運行一個文件?
oneliner....
oneliner....
code
oneliner....
什麼我感興趣的是上面顯示所需的格式。
我是新來的Perl和我使用Perl的單行用幾個簡單的Perl腳本我的任務一起。可以在Perl腳本中使用Perl單線程嗎?
我想知道,如果它能夠在代碼格式一堆單行結合,運行包含單行只是特定的文件?舉例來說,如果我有3個單行將被運行一個接一個,我可以把這些3單行名爲file.pl並運行一個文件?
oneliner....
oneliner....
code
oneliner....
什麼我感興趣的是上面顯示所需的格式。
這聽起來像你想有一個shell腳本中,你只是有一個襯墊:
#!/bin/sh
perl -le '...'
perl -ane '...'
perl -e '...'
如果你想運行在一個Perl程序的中間一行代碼,你可以用做system:
#!/usr/bin/perl
system(q(perl -le '...'));
不過,如果你已經是一個Perl程序,你可以擴展的一行到它的非速記代碼,並把它的計劃。例如,請參閱How can I consolidate several Perl one-liners into a single script?
一般,那就沒辦法了,它不會太大的意義。通常,perl oneliner會向perl提供一些命令和參數。例如,下面是一個典型的oneliner:
perl -e 'print reverse <>' foo.txt
但是,如果你把這個腳本,你會得到如下:
Bareword found where operator expected at .\one.pl line 1, near "'print reverse <>' foo"
(Missing operator before foo?)
syntax error at .\one.pl line 1, near "perl -e "
Execution of .\one.pl aborted due to compilation errors.
所以,劇本的格式和oneliner的格式是不兼容。但是,通常可以通過從oneliner中提取命令和參數將oneliner轉換爲腳本格式。
剛剛發現可以將oneliners轉換爲perl腳本,然後可以將它們加在一起。但想知道是否可以按照問題中所述完成。謝謝你的答案@大衛 – unkaitha 2012-08-14 01:08:49
本質上說,是的。你把實際的命令放在一個文件中。因此,使用從以前的答案的例子中,創建一個包含文件:
print reverse <>
然後用perl運行它。在類Unix的機器,這將是
perl file.pl
在Windows上我想這將是類似的。搜索「在Windows下運行perl腳本」或類似的,在谷歌。
非常感謝。這對我來說非常合適。 – unkaitha 2012-08-14 05:14:39
我不確定我是否應該在此評論中詢問此處。但是我非常需要解決方案來解決我之前關於「比較文件並將類似數據存儲到不同文件中」的問題,即使已經得到解答,我也不確定爲什麼這些解決方案不適合我。我能期待你對這個問題的幫助嗎?提前致謝。 – unkaitha 2012-08-14 05:20:00
@unkaitha嗯...問題要求一個名爲'file.pl'的腳本,即perl腳本,而不是shell腳本。問題應該表明你願意採取任何類型的劇本。 – David 2012-08-14 16:46:20