Why do you copy your file and then move it? It would be simpler to just copy it directly to the right destination. By the way, File::Copy provides both a copy and a move function.
The fact that you had to copy and paste the same code 4 times should have been a good clue that you could have done it better. And if you are just going to use index to know if a string is included in the other, a regex could do the trick, with case insensitivity made easy.
use strict; use File::Copy; use warning; system("clear"); system("mount /dev/cd0 /mnt"); system("cp /mnt/* /usr/castle/pctemp/."); system("umount /mnt"); my %dest = (SO_PC => 'PCMAP.BIN', MS_PC => 'FULLPC.BIN', SO_CV => 'CVFULLPC.BIN', MS_MC => 'MBFULLPC.BIN'); print "\n" x 5, "Input required:\n"; my $fileName = <STDIN>; chomp $fileName; for my $search (keys %dest) { die "$fileName does not exist!" unless -e $fileName; copy ($fileName, '/usr/castle/np_new/'.$dest{$search}) if $fileName + =~ /\Q$search/i; }
In reply to Re: Filename Partial Match function
by Eily
in thread Filename Partial Match function
by Jalcock501
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |