2013-07-08 182 views
0
  • 如何創建一個變量名稱變量?例如$$ ref;
    here $ref="name1"; or $ref ="name2" ;Perl懷疑編碼疑惑

  • 單引號字符串如何轉換爲雙引號字符串..?例如。
    Hello\n'; to "Hello\n";

  • 如果quotemeta是在一個字符串操作..能不能恢復到它以前 形式..?例如"hello\\nWorld\\\$" to "hello\nWorld\$.

+0

關於「如何能單獨帶引號的字符串轉換成一個雙引號字符串「:首先使用雙引號。 – doubleDown

+0

@doubleDown我認爲這更多的是關於「如何將未插入字符串轉換爲插入字符串」。看起來像某種模板系統的工作。 [String :: Format](https://metacpan.org/module/String:Format)也許? (還沒有嘗試過) – Dallaylaen

+0

@doubleDown想從OP得到更多的輸入,但... – Dallaylaen

回答

4

如何與一個變量名稱的變量創建?例如$$ ref;

使用單引號而不是雙引號。

my $variableName = '$$ref'; 
print $variableName; 

這不是很常見,最有可能表明設計錯誤。問問你自己爲什麼需要這個。

如何將單引號字符串轉換爲雙引號 字符串..?

這個問題對我沒有意義。一個字符串是一個字符串,不管它是單引號還是雙引號。一旦創建,你就不知道它是如何創建的。你想做什麼?

如果你想要的是展開現有字符串中的變量the documentation is pretty clear about how to do it

如果quotemeta是在一個字符串操作..能不能恢復到它以前 形式..?

String::Unquotemeta

0
  1. 是。這就是所謂的符號引用,因爲安全原因,不建議這樣做。而且也很難調試。

  2. 是的。

    my $ text ='Hello \ n';

    (my $ interpretation = $ text)=〜s {\\ n} {\ n} gmsx;

    print''$ text'\ n「;

    print「'$ interpretation'\ n」;

1

你到底想達到什麼目的?如果您提供了一些背景,那麼回答起來會更容易。

截至目前,第1部分是要求使用散列而不是簡單的變量,除非你有理由不:

#!/usr/bin/perl -w 
use strict; 
my %hash = (name1 => 42, name2 => 3.14); 
my $key = (rand() < 0.5) ? "name1" : "name2"; 
print $hash{$key}; 
+0

*「你最終想達到什麼目的?如果你提供了一些上下文。「* +1 – m0skit0