我有三个数组。
- @array1 包含文件名
- @array2 包含文件名
- @unique 我想包含独特的项目
我使用以下代码比较两个数组并输出包含唯一文件名的第三个数组。
@test{@array1} = ();
@unqiue = grep {!exists $test{$_}} @array2;
但是输出区分大小写,如何将其更改为不区分大小写?
谢谢
嗨,对不起,我认为我没有很好地提出我的问题!
我保留了一个旧的轨道阵列,其中包含我已经播放过的曲目,然后我有一个要从中选择的新曲目阵列。我想将新轨道与旧轨道阵列进行比较,以确保我只获得唯一的轨道然后从中进行选择。
所以目前的输出是;
独特的曲目: \我的音乐\腐败的灵魂\b-corrupt.mp3 \我的音乐\gta4\10 - Vagabond.mp3 \我的音乐\gta4\14 - 战争是必要的.mp3 \我的音乐\回到黑色\05 回到黑色.mp3
我需要的是让结果只返回轨道 10、14 和 05,因为第一个轨道 b-corrupt 已经在旧轨道阵列中,只是情况不同。
在此先感谢您的帮助
#!/usr/bin/perl $element = '\\My Music\\Corrupt Souls\\b-corrupt.mp3'; 推(@oldtrackarray,$元素); $element = '\\My Music\\Back To Black\\03 我和琼斯先生.mp3'; 推(@oldtrackarray,$元素); $element = '\\My Music\\Jazz\\Classic Jazz-Funk Vol1\\11 - Till You Take My Love [Original 12 Mix].mp3'; 推(@oldtrackarray,$元素); $element = '\\我的音乐\\gta4\\01 - 苏联联系(侠盗猎车手IV主题).mp3'; 推(@oldtrackarray,$元素); $element = '\\My Music\\gta4\\07 - Rocky Mountain Way.mp3'; 推(@oldtrackarray,$元素); $element = '\\我的音乐\\gta4\\02 - 肮脏的纽约客.mp3'; 推(@oldtrackarray,$元素); 打印“旧轨道阵列\n”; for($index=0;$index<@oldtrackarray+1;$index++){ 打印 "$oldtrackarray[$index]\n";} $element = '\\my Music\\Corrupt Souls\\b-corrupt.mp3'; 推(@newtrackarray,$元素); $element = '\\我的音乐\\gta4\\10 - Vagabond.mp3'; 推(@newtrackarray,$元素); $element = '\\My Music\\gta4\\14 - War Is Necessary.mp3'; 推(@newtrackarray,$元素); $element = '\\我的音乐\\回到黑色\\05 回到黑色.mp3'; 推(@newtrackarray,$元素); 打印“新曲目\n”; for($index=0;$index<@newtrackarray+1;$index++){ 打印 "$newtrackarray[$index]\n"; } @test{@oldtrackarray} = (); @uninvited = grep {!exists $test{$_}} @newtrackarray; 打印“独特的曲目:\ n”; for($index=0;$index<$#uninvited+1;$index++){ print "$uninvited[$index]\n"; }