$variable{$2}++在Perl中是什么意思?
我在一个tab分隔的.txt文件中有一个两列数据集,perl脚本将其读取为FH,下面是直接的代码片段:$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个变量中的任何一个时,它表示这些变量未初始化。 而且
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中捕获的所有字符串作为键,它们的值是它们的计数。