簡體   English   中英

將字符串變量附加到Perl中的固定字符串

[英]Appending a string variable to a fixed string in Perl

我有一個在提示符下輸入的變量:

my $name = <>;

我想在此附加一個固定的字符串'_one' (在一個單獨的變量中)。

例如,如果$name = Smith則它變成'Smith_one'

我嘗試了幾種不能給我正確結果的方法,例如:

my $one = "${name}_one";

^當我打印出來時, _one出現在下一行,當我使用它時,_one根本不包括在內。

也:

my $one = $name."_one";

^ '_one'出現在字符串的開頭

和:

my $end = '_one';
my $one = $name.$end;
or 
my $one = "$name$end";

這些都沒有產生我想要的結果,所以我必須遺漏一些與輸入格式如何從提示格式相關的東西。 想法贊賞!

您的問題與字符串追加無關:當您讀取一行(例如,通過<> )時,記錄輸入分隔符將包含在該字符串中; 這通常是換行符\\n 要刪除換行符, chomp變量:

    my $name = <STDIN>; # better use explicit filehandle unless you know what you are doing
    # now $name eq "Smith\n"
    chomp $name;
    # now $name eq "Smith"

要將變量插入到字符串中,通常不需要使用的${name}語法。 這些行都將_one附加到您的字符串並創建一個新字符串:

    "${name}_one"  # what you used
    "$name\_one"   # _ must be escaped, else the variable $name_one would be interpolated
    $name . "_one"
    sprintf "%s_one", $name
    # etc.

這會將_one附加到您的字符串並仍然將其存儲在$name

    $name .= "_one"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM