in reply to Re^4: Perl Script in Windows Works, but not in Unix
in thread Perl Script in Windows Works, but not in Unix

If you added use strict;and did not get errors, then I think kcott was on the right track when he indicated the invocation was somehow incorrect.

#!/usr/bin/env perl use strict; # name # Script to extract "item 7" from a 10-K report. # This will write the "good" part of the file to stdout, and will writ +e # a "schema string" on a single line to stderr. $dirtoget="/10K-txt/";

This should have immediately produced an error if the Perl interpretter was reading it, because you don't have
     my $dirtoget here.

Also, changing your first line from
    #!/usr/bin/perl
to
    #!/usr/bin/env perl

Changed the behavior.

Something's up with the invocation.

I know you said you tried the dos2unixutility, which addresses newlines, but could it be a Unicode file and your Linux system isn't happy with that?

I'm reaching here, but there is an answer. We just need to find it.

Replies are listed 'Best First'.
Re^6: Perl Script in Windows Works, but not in Unix
by dobster936 (Novice) on Jun 26, 2015 at 19:50 UTC
    I think we're on the right track with the invocation too. For example, when I use the path /usr/bin/perl, I now get the error #: bad interpreter: No such file or directory. When using path /usr/bin/env perl I get error env: perl\r: No such file or directory. Looking in the bin folder I see I have a file called "env" and a file called "perl".

      That's might be a line ending issue. When I create a script on Unix, I can run it on both Windows and Unix, however if I create it on Windows, it won't run on *nix. If you're having problems running a script created on Windows on your Unix boxes, here's a quick fix for you... open the script in vi: vi script.pl, and immediately type the following after it opens(include the colon):

      :set ff=unix

      ...then hit ENTER, then type :wq and ENTER again. That'll set your line endings to use Unix style endings and will (should) work on both platforms.

      -stevieb

      You shouldn't have \r anywhere in a text file on Linux or Unix. Try dos2unix or, failing that, use:

      perl -i~ -pe 'tr/\r//d; print' filename
      to get rid of stray carriage returns.

Re^6: Perl Script in Windows Works, but not in Unix
by marinersk (Priest) on Jun 26, 2015 at 19:31 UTC

    jeffa, you're an absolute wiz at the Linux stuff. You're showing up in the "Other Users" nodelet; any ideas?