我有一個變量,其中有兩個值用分號分隔。我想將這些值中的一個值變爲一個變量,另一個值變爲另一個變量。我試圖這樣做使用:將變量拆分爲兩個字段
my $firstField = `echo $line | awk -F; '{print $1}'`;
但它越來越解釋非常奇怪。我最好如何做到這一點?
我有一個變量,其中有兩個值用分號分隔。我想將這些值中的一個值變爲一個變量,另一個值變爲另一個變量。我試圖這樣做使用:將變量拆分爲兩個字段
my $firstField = `echo $line | awk -F; '{print $1}'`;
但它越來越解釋非常奇怪。我最好如何做到這一點?
這裏絕對不需要涉及任何外部工具。使用perl!
my $firstField = (split(/;/, $line))[0];
由於Perl的規則"If it looks like a function call, it's a function call",所以需要外部圓括號。沒有額外的括號,[0]
被解釋爲函數調用的下標(這是無效的),而不是作爲返回的列表的下標。
或者如果你喜歡:
my ($firstField) = split /;/, $line;
這種分配由split
返回變量列表的第一個值。
你可以得到你想要一個分裂的呼叫許多: 如果你想讓他們在標量變量,使用
my ($a, $b) = split(";", $inputstring); # add $c, $d, etc as you like to the list
或得到一個可變數目到一個數組中使用:
my @parts = split(";", $inputsring);
謝謝你的幫助,這很好用! – Roguebantha
請解釋語法錯誤的解決方案 – Borodin
@Borodin我已經添加了一些解釋 - 如果您認爲可以改進,請告訴我。 –