投稿したフラグメントは有効な xml ではないため、次のようにしましょう
<body>
<item>
<key>Name</key>
<string>Steve Allen</string>
</item>
<item>
<key>Place</key>
<string>London</string>
</item>
</body>
このフラグメントを入力として使用すると、このプログラムは引数として指定された任意の数のファイルの名前を変更します プログラムを「myrename」として保存した場合、「myrename file1.xml file2.xml file3.xml」は file1.xml file2.xml のパス名を変更しますおよびfile3.xmlを最初のアイテムに
「キー」と呼ばれるタグは、一見魔法のように機能するようです:/
#!/usr/bin/perl
use XML::Simple;
for $file ( @ARGV[ 0 .. $#ARGV ] ) {
my $ref = XMLin($file);
$new_name = $ref->{'item'}->{'Name'}->{'string'};
rename $file, "$new_name.xml" || warn "couldn't rename $file $!";
}