2011-07-28 49 views
1
my $input1 = "hours"; 
my $input2 = "Total hours"; 
my ($matching_key) = grep { /$input2/ } $input1; 
print "Matching key :: $matching_key"; 

我想要從$ input2中去掉「Total」並將其賦值給input2,這樣我的grep行就會匹配。我如何去除這個詞?在Perl中刪除字符串的一部分

+0

我認爲最好用_capture_而不是'grep'來完成。 –

回答

2

我不知道,我完全理解你的問題,反正你可以去除總這樣的:

$input2 =~ s/Total //; 

在此之後$輸入2的值將"hours"

我不明白充分「分配回INPUT2所以我的grep線將匹配」的一部分......

0

像這樣

my $input1 = "hours"; 
my $input2 = "Total hours"; 
$input2 =~ m/($input1)/; 
print "Matching key : $1\n"; 
1

我不知道到底是什麼你」再詢問,但如果你想$input2是 '總',嘗試

$input2 =~ s/ hours//; 

$input2 = substr $input2, 0, 5; 

同樣,如果你想$input2是 '小時',嘗試

$input2 =~ s/Total //; 

$input2 = substr $input2, 6; 
9

如果我正確理解你的問題,你想

$input2 =~ s/Total //; 

然而,你也在使用grep();它返回第二個參數中的元素數組(它也應該是一個列表),它們與第一個參數中給出的模式相匹配。雖然它實際上會返回標量上下文中的「小時」,但它們是您使用它的方式,這非常巧合。

+0

抱歉不清楚。基本上作爲用戶,我會輸入「小時」。登錄到計算機並獲取信息後,我分配$ input2。 $ input2將總是有「總小時數」,但我不希望用戶輸入爲「總小時數」,而只是幾小時。因此,我想刪除「Total」,所以$ input2將匹配$ input1。 – user238021

相關問題