【问题标题】:Define a param in variable [duplicate]在变量中定义一个参数[重复]
【发布时间】:2014-01-17 00:02:53
【问题描述】:

我无法创建一个在其中定义参数的字符串,如下所示:

my $string = " my name is $q->param('name')";

当我打印时,我得到“我的名字是 CGI=HASH(0x354680)->param('name')”

我做错了什么。我想避免事先定义变量,因为我有大量的参数可以使用。

【问题讨论】:

    标签: perl


    【解决方案1】:

    试试:

    my $string = " my name is ". $q->param('name');
    

    为避免串联,您可以先将参数加载到哈希中:

    my @names = qw(name email);
    my %params = map { $_ => $q->param($_) } @names; 
    my $string = " my name is $params{'name'}";
    

    如果您的某些参数有多个值,请小心。

    【讨论】:

    • 我以为会是这样。看起来我会有很多串联
    • 还有其他解决方案,可能会显示更多您的代码。
    • 查看我的更新以避免串联
    • 为什么为了避免串联而避免串联呢?使用散列需要 more 输入,其意图并不像仅使用连接运算符那样清晰。
    • @ThisSuitIsBlackNot 我同意你关于意图的观点,但如果有“吨”的参数,并且你称哈希为 %p,那么你将 保存 输入。此外,如果参数的值被多次使用,哈希会更有效,即您将避免多次方法调用。
    猜你喜欢
    • 2018-06-09
    • 2011-03-05
    • 1970-01-01
    • 2015-03-19
    • 2020-09-18
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多