my $input1 = "hours";
my $input2 = "Total hours";
my ($matching_key) = grep { /$input2/ } $input1;
print "Matching key :: $matching_key";
我想要從$ input2中去掉「Total」並將其賦值給input2,這樣我的grep行就會匹配。我如何去除這個詞?在Perl中刪除字符串的一部分
my $input1 = "hours";
my $input2 = "Total hours";
my ($matching_key) = grep { /$input2/ } $input1;
print "Matching key :: $matching_key";
我想要從$ input2中去掉「Total」並將其賦值給input2,這樣我的grep行就會匹配。我如何去除這個詞?在Perl中刪除字符串的一部分
我不知道,我完全理解你的問題,反正你可以去除總這樣的:
$input2 =~ s/Total //;
在此之後$輸入2的值將"hours"
。
我不明白充分「分配回INPUT2所以我的grep線將匹配」的一部分......
像這樣
my $input1 = "hours";
my $input2 = "Total hours";
$input2 =~ m/($input1)/;
print "Matching key : $1\n";
我不知道到底是什麼你」再詢問,但如果你想$input2
是 '總',嘗試
$input2 =~ s/ hours//;
或
$input2 = substr $input2, 0, 5;
同樣,如果你想$input2
是 '小時',嘗試
$input2 =~ s/Total //;
或
$input2 = substr $input2, 6;
如果我正確理解你的問題,你想
$input2 =~ s/Total //;
然而,你也在使用grep()
;它返回第二個參數中的元素數組(它也應該是一個列表),它們與第一個參數中給出的模式相匹配。雖然它實際上會返回標量上下文中的「小時」,但它們是您使用它的方式,這非常巧合。
抱歉不清楚。基本上作爲用戶,我會輸入「小時」。登錄到計算機並獲取信息後,我分配$ input2。 $ input2將總是有「總小時數」,但我不希望用戶輸入爲「總小時數」,而只是幾小時。因此,我想刪除「Total」,所以$ input2將匹配$ input1。 – user238021
我認爲最好用_capture_而不是'grep'來完成。 –