use strict; # my ($given_file_str, $message_ret, $return_code); # #====================================================== # # test_nonvalid_filechr # # this test the given variable to find if there are any none valid file name characters # # arguments # # 1 $given_file_str gien file/directory name string # 2 $ref_message_ret referecne to message given when failure # 3 $ref_return returned code # 1 ok # 0 fialure # #====================================================== sub test_nonvalid_filechr($$$) { my ($given_file_str, $ref_message_ret, $ref_return) =@_; my (@bdchr, $bdchr_item, $j, $given_total); @bdchr = ('\\', '/', ':', '*', '?', '"', '<', '>', '|'); #" $$ref_message_ret = ''; $$ref_return = 1; $given_total = length($given_file_str); foreach $bdchr_item (@bdchr) { for($j = 0; $j < $given_total; $j ++) { if(substr($given_file_str, $j, 1) eq $bdchr_item) { $$ref_message_ret .= $bdchr_item . ' '; $$ref_return = 0; } } } } # test data $given_file_str = 'a b c *'; test_nonvalid_filechr ($given_file_str, \$message_ret, \$return_code); print "\nfile name <$given_file_str> message <$message_ret> code <$return_code>\n"; $given_file_str = '\ / : * ? " < > |'; test_nonvalid_filechr ($given_file_str, \$message_ret, \$return_code); print "\nfile name <$given_file_str> message <$message_ret> code <$return_code>\n";