Perl怀疑..编码疑惑

时间:2013-07-08 14:08:38

标签: regex perl

  • 如何创建具有变量名称的变量?例如$$ ref;
    这里$ref="name1"; or $ref ="name2" ;

  • 如何将单引号字符串转换为双引号字符串..?例如。
    'Hello\n'; to "Hello\n";

  • 如果对字符串操作quotemeta,则可以将其恢复为其字符串 以前的表格..?例如"hello\\nWorld\\\$" to "hello\nWorld\$.

3 个答案:

答案 0 :(得分:4)

  

如何创建具有变量名称的变量?例如$$ ref;

使用单引号而不是双引号。

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

这种情况并不常见,很可能表明设计错误。问问自己为什么需要这个。

  

如何将单引号字符串转换为双引号   串..?

这个问题对我没有意义。字符串是一个字符串,无论是单引号还是双引号都无关紧要。创建后,您不知道它是如何创建的。你想做什么?

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

  

如果对字符串操作quotemeta,可以将其还原为其字符串   以前的表格..?

String::Unquotemeta

答案 1 :(得分: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};

答案 2 :(得分:0)

  1. 是。这称为符号引用,不建议使用,因为出于安全原因。并且它也很难调试。

  2. my $ text ='Hello \ n';

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

    打印“'$ text'\ n”;

    print“'$ explain'\ n”;