簡體   English   中英

如何在perl中使用查找文本作為變量?

[英]how to use find text as variable in perl?

我在file1.pm文件file1.pm中有變量

package oa;
use strict;
use warnings;
our $first1= 'DTH';
1;

現在想訪問變量中的這個變量,這是我的主程序,但是我沒有得到輸出,我知道問題是“ oa:$ var”我可以使用“ / oa :: $ var /”來訪問變量嗎?

#!/usr/bin/perl
use file1;
$input='DTH';
$var=first . 1;
if($input =~ /oa::$var/){
print “DTH”;
}

Perl不是PHP,並且$標記在軟件包名稱的前面:如果要訪問軟件包變量,請執行$PackageName::var_name

./MyPackage.pm

package MyPackage;  # package names should be CamelCase!
use strict;
use warnings;

our $first1 = 'DHT';
1;

./script.pl

use strict;
use warnings;
use MyPackage;

my $input = 'DHT';
if ($input =~ /$MyPackage::first1/) {
    print "DHT\n";
}

但是,您還通過名稱引用變量。 這是一件壞事,並且幾乎不可能理解和維護這樣的程序。 您可以改用哈希 (也稱為關聯數組,地圖或字典):

MyPackage

our %stuff = (
    first1 => 'DHT',
    other1 => 'foobar',
);

在腳本中:

my $var = 'first1';
if ($input =~ /$MyPackage::stuff{$var}/) {
    ...

暫無
暫無

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

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