支持空間我有一個Perl腳本,它採用類似的Perl的Getopt ::長,對參數
automate -action build,deploy -modules chat,email,login
getopts的long.A命令很容易處理。
我想實現的是,允許用戶在參數之間給出空格。
如
automate -action build, deploy -modules chat, email, login
問題是,GetOpt::Long
內部使用@ARGV
,根據需要設置變量和空間改變@ARGV
陣列,這反過來將只放「建設」爲動作,並且只將「聊天」作爲腳本的模塊,忽略其他參數傳遞。
有沒有一種簡單的方法來解析perl中的上述命令行?
我希望有,因爲否則,我將不得不使用一種非常冒險的方式在傳遞給GetOpts之前更改@ARGV
數組。
有沒有其他強大的圖書館,這將爲我做這個?
--------------------------- Tailor made script ---------------- ----------------
GetOptions("action=s{1,4}"=>\@myactions,
"modules=s{,}"=>\@mymodules);
foreach(@mymodules)
{
if($_ eq $mymodules[0])
{
$mymodules= $mymodules.$_;
next;
}
if($dashboards =~ m/,$/ || $_ =~ m/^,/)
{
$mymodules= $mymodules.$_;
}
else
{
$mymodules= $mymodules.",".$_;
}
}
這不是一個好主意 - 有空格分隔的參數列表是違背大多數CLI界面標準。你不應該偏離大多數用戶在設計用戶界面(包括命令行包含的)時不熟悉的東西 – DVK 2011-04-13 20:21:31