$variable{$2}++在Perl中是什么意思?

$variable{$2}++在Perl中是什么意思?,perl,Perl,我在一个tab分隔的.txt文件中有一个两列数据集,perl脚本将其读取为FH,下面是直接的代码片段: while(<FH>) { chomp; s/\r//; /(.+)\t(.+)/; $uniq_tar{$2}++; $uniq_mir{$1}++; push@{$mir_arr{$1}},$2; push @{$target{$2}} ,$1; } 当我试图打印上述4个变量中的任何一个时,它表示这些变量未初始化。 而且

我在一个tab分隔的.txt文件中有一个两列数据集,perl脚本将其读取为FH,下面是直接的代码片段:

while(<FH>)
{
    chomp;
    s/\r//;
    /(.+)\t(.+)/;
    $uniq_tar{$2}++;
    $uniq_mir{$1}++;
    push@{$mir_arr{$1}},$2;
    push @{$target{$2}} ,$1;
}
当我试图打印上述4个变量中的任何一个时,它表示这些变量未初始化。 而且,当我试图打印$uniq_tar{$2}++;和$uniq_mir{$1}++; 它只是打印了一些我看不懂的数字

我只想知道这部分代码的总体计算结果是什么? $uniq_tar{$2}++

while循环依次将文件的每一行放入Perl的特殊变量$\ux中

/…/是匹配运算符。默认情况下,它在$上工作

/.*\t.*/是匹配运算符中的正则表达式。如果正则表达式匹配$\中的内容,则两对括号内的匹配字符串位存储在Perl的特殊变量$1和$2中

您有名为%uniq_tar和%uniq_mir的散列。您可以使用$hashname{key}访问散列中的各个元素。因此,$uniq_tar{$1}正在%uniq_tar中查找与存储在$1中的键相关的值,即第一个选项卡之前的记录部分

$variable++增加$variable中的数字。因此,$uniq_tar{$1}++增加了我们在上一段中发现的值

正如zdim所说,这是一个频率计数器。读取文件中的每一行,并提取行中第一个选项卡前后的数据位。然后,在两个散列中递增值,以计算每个字符串的出现次数。

while循环依次将文件的每一行放入Perl的特殊变量$

/…/是匹配运算符。默认情况下,它在$上工作

/.*\t.*/是匹配运算符中的正则表达式。如果正则表达式匹配$\中的内容,则两对括号内的匹配字符串位存储在Perl的特殊变量$1和$2中

您有名为%uniq_tar和%uniq_mir的散列。您可以使用$hashname{key}访问散列中的各个元素。因此,$uniq_tar{$1}正在%uniq_tar中查找与存储在$1中的键相关的值,即第一个选项卡之前的记录部分

$variable++增加$variable中的数字。因此,$uniq_tar{$1}++增加了我们在上一段中发现的值


正如zdim所说,这是一个频率计数器。读取文件中的每一行,并提取行中第一个选项卡前后的数据位。然后在两个散列中递增值,以计算每个字符串的出现次数。

对于初学者,请尝试/+?\t.++/而不是/+\t.++/注意附加值?更好的是,在正则表达式中,使用my$c1、$c2=split/\t/;,而不是正则表达式;,然后使用$c1和$c2代替$1和$2,但使用比$c1更好的变量名!注意。但我仍然无法理解$uniq_tar{$2}++;这段代码是这样的,这就是我所坚持的。似乎是哈希表存储$2和$1中提供的值,并根据$2和$1递增计数。有一个哈希%uniq_tar,$uniq_tar{$2}是$2中字符串的键的值。因此,每当在$2中捕获相同的字符串时,哈希中该键的值就会增加1-$uniq_tar{$2}=$unit_tar{$2}+1,简而言之$uniq_tar{$2}++。这是一个频率计数器。最后,该散列将$2中捕获的所有字符串作为键,它们的值是它们的计数。对于初学者,请尝试/+?\t.++/而不是/+\t.++/注意附加的?更好的是,在正则表达式中,使用my$c1、$c2=split/\t/;,而不是正则表达式;,然后使用$c1和$c2代替$1和$2,但使用比$c1更好的变量名!注意。但我仍然无法理解$uniq_tar{$2}++;这段代码是这样的,这就是我所坚持的。似乎是哈希表存储$2和$1中提供的值,并根据$2和$1递增计数。有一个哈希%uniq_tar,$uniq_tar{$2}是$2中字符串的键的值。因此,每当在$2中捕获相同的字符串时,哈希中该键的值就会增加1-$uniq_tar{$2}=$unit_tar{$2}+1,简而言之$uniq_tar{$2}++。这是一个频率计数器。最后,哈希将$2中捕获的所有字符串作为键,它们的值是它们的计数。