Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?

Re^2: Looking up elements of an array in another array!

by better (Acolyte)
on Mar 15, 2013 at 21:42 UTC ( #1023783=note: print w/replies, xml ) Need Help??

in reply to Re: Looking up elements of an array in another array!
in thread Looking up elements of an array in another array!

Hi Anonymous Monk,

as none of the proposals worked for me, I started wondering, why? The clue seems to be the text file, which serves as a reference. I created it by copying a coloumn out of an excel worksheet into a notepad file. After I created a new text file with perl your script worked perfectly well. It seems that "Copy and Paste" from microsoft excel has caused the trouble.

Now I will add the next step, which is copying the matching files into another directory

Thanks again


  • Comment on Re^2: Looking up elements of an array in another array!

Replies are listed 'Best First'.
Re^3: Looking up elements of an array in another array!
by Anonymous Monk on Mar 16, 2013 at 07:29 UTC

      Hi Anonymous Monk,

      after playing around a little with different scripts, and learning about the use of modules in perl, I added a line into your script to achieve my aim of creating a file importer.

      The job is almost done.

      It works fine, if I create the text file 'indexDS.txt' via perl. The problem I couldn't solve, is that, as soon as I change the text file by opening with notepad (windows), it crashes. I tried to implement ':encoding(utf8)'. Without success.

      At least I managed to parse the original excel file (with all the IDs in the first coloumn) and convert it into a text file using encoding(utf8). But this converted text file doesn't work with this script. Anyhow, I am sure, it would be much nicer, if I could parse the CVS file directly into that script

      But how?

      Sorry, I can't get any further on my own.


      P.S: This is what I added to your script

      use File::Basename; use File::Copy; ... ... ... ... my $dirTarget = '/cygdrive/d/tmp/'; copy ($_, $dirTarget.basename ("$_")) for (@fnames);

      The scripts works now! It was not the encoding, but the carriage return, which was included in the "bad" text file. Monk McA came up with reading the text file in a hex code. After stripping of the carriage return from each ID, the IDs could be handed over as regex into your code. And voilą, a couple of thousand files had been found and copied.

      Thanks again! That saved me a lot of time.

      I'm feeling much

      better ;-)

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1023783]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (6)
As of 2018-06-24 21:14 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (126 votes). Check out past polls.