如果找到匹配,则使用%符号分配值Perl

时间:2016-09-20 07:25:54

标签: regex perl

我想了解下面的代码,它实际上是如何工作的。我得到了一个文本文件,例如如下所示,显示了文件夹的所有者。如果文件夹A退出则会说它属于父。

Folder A=Father
Folder B=Mother
Folder C=Son

代码:

my %family= ();
$member{"Folder A"} = "Father";
$member{"Folder B"} = "Mother";
$member{"Folder C"} = "Son";

我收到朋友的建议,说上面的代码会帮助我为$ member分配相同的价值,如果找到$ {}我不太了解它是如何工作的,以及它如何分配

我有其他方法来执行上面的逻辑是我ls外部文件夹分配给一个数组然后cat文本文件也分配给一个数组。然后使用两个for循环和一个模式匹配得到文件夹退出时的值。但我想知道上面的代码是如何工作的。可以有人提供上面逻辑如何工作的示例代码以及这个方法的用法是什么?

我做了一些研究并做了一些代码但是代码中存在一些问题,当我将变量赋值提取时,我无法获取哈希信息。

%family;
@family_list = `cat /data/admin/family/Family_name.txt`;
@FOLDER=`cd /data/admin/family/;ls -d */ | cut -f1 -d'/'`;
foreach $item(@family_list)
{
   @temp = split ( /=/, $item);
   $family{$temp[0]}=$temp[1];
}

foreach $item(@FOLDER)
{
   print "$item";
   $member=$family{$item};
   print "$member";
}

foreach $item loop部分似乎$member未分配%family的任何输出。我尝试使用硬编码并显示家庭成员,例如{{1}在结果中打印父亲。有人指出我执行的错误吗?我检查网络,他们的例子大多是硬编码。

0 个答案:

没有答案