How to Turn perl one-liners into full perl script?


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers How to Turn perl one-liners into full perl script?
# 1  
Old 02-02-2009
How to Turn perl one-liners into full perl script?

I have the following command prompt perl one liner:

Code:
perl -e 's/[a-z]\(\)\\,\"]//g; s/^\s//g; s/;/\n/g' -pi result1

I tried to move this one liner into a perl script I am practicing with (just started learning perl right now).

I tried the following (I only know how to open a file and output to a new file right now):

Code:
open (var2, "result1") or die "Error Opening Target\n";
open (var3, ">mod2") or die "Error Generating Target\n";


while (<var2>) {
  $_=~s/[a-z\(\)\\,\"]//g; 
  $_=~s/^\s+//g; 
  $_=~s/;/\n/g;
  print var3;
}

Which does nothing (I get an empty var3 file)

Can anyone point out what mistakes I made in the script?
# 2  
Old 02-04-2009
The -p option adds this around the entire script:
Code:
  while (<>) { 
    ...
  }
  continue { 
    print $_; 
  }

The -i option modifies the <> expression (above) so that $ARGV, which contains the name of the currently-being-read file, is backed up to a temporary file, and the output (STDOUT) directed to a file named the same as the original. Or something like that.

That's why turning it into a script is not quite so easy. You have to do that stuff yourself OR... you can just do:
Code:
#!/usr/bin/perl -pi

#... your code here

Except in that case, you DONT want to open your filenames as you are doing.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

PERL: In a perl-scripttTrying to execute another perl-script that SETS SOME VARIABLES !

I have reviewed many examples on-line about running another process (either PERL or shell command or a program), but do not find any usefull for my needs way. (Reviewed and not useful the system(), 'back ticks', exec() and open()) I would like to run another PERL-script from first one, not... (1 Reply)
Discussion started by: alex_5161
1 Replies

2. Shell Programming and Scripting

HELP on Perl array / sorting - trying to convert Korn Shell Script to Perl

Hi all, Not sure if this should be in the programming forum, but I believe it will get more response under the Shell Programming and Scripting FORUM. Am trying to write a customized df script in Perl and need some help with regards to using arrays and file handlers. At the moment am... (3 Replies)
Discussion started by: newbie_01
3 Replies

3. Shell Programming and Scripting

Check if Queue empty or full in perl

Hi, I got problem with queue code how to determined empty and full and problem with while loop Here is my pseudo code : Input page Access Input Pgae Frame For i =3 to pageframe count by 1 construct queue of size i set pageFaultCount to 0 while morepages do page = NextPage... (1 Reply)
Discussion started by: guidely
1 Replies

4. Shell Programming and Scripting

Perl :How to print the o/p of a Perl script on console and redirecting same in log file @ same time.

How can i print the output of a perl script on a unix console and redirect the same in a log file under same directory simultaneously ? Like in Shell script, we use tee, is there anything in Perl or any other option ? (2 Replies)
Discussion started by: butterfly20
2 Replies

5. Shell Programming and Scripting

perl/unix: script in command line works but not in perl

so in unix this command works works and shows me a list of directories find . -name \*.xls -exec dirname {} \; | sort -u | > list.txt but when i try running a perl script to run this command my $query = 'find . -name \*.xls -exec dirname {} \; | sort -u | > list.txt';... (2 Replies)
Discussion started by: kpddong
2 Replies

6. Shell Programming and Scripting

Return Full File Path To Array PERL

Iam trying to load the full path of multiplie files in the same directory to an array if the filenames matches a pattern. The following is the current code; where $input=C:\test # change to and open the comparison directory chdir("$input2") || die "Cannot change dir: $!"; opendir(DIR2,... (2 Replies)
Discussion started by: cold_Que
2 Replies

7. Shell Programming and Scripting

Perl : Find a string and Print full line

Hi Need a perl script to read lines in a file, scan for a string named "APPLE" and write to different file the only lines containing the matched string. (5 Replies)
Discussion started by: PrasannaKS
5 Replies

8. Shell Programming and Scripting

Perl how to make the 2nd CPU full?

Hi Buddies, my pc has two CPU, so CPU1 and CPU2. I have a perl "a.pl", when i "./a.pl", i can see the CPU1 is full or CPU2 is full, mean only one is full, another one is idle. Wonderring what shall i do in order to let both CPU to process this a.pl.:( Thanks (1 Reply)
Discussion started by: jimmy_y
1 Replies

9. Shell Programming and Scripting

[Perl] Accessing array elements within a sed command in Perl script

I am trying to use a script to replace the header of each file, whose filename are stored within the array $test, using the sed command within a Perl script as follows: $count = 0; while ( $count < $#test ) { `sed -e 's/BIOGRF 321/BIOGRF 332/g' ${test} > 0`; `cat 0 >... (2 Replies)
Discussion started by: userix
2 Replies

10. Shell Programming and Scripting

Perl: Run perl script in the current process

I have a question regarding running perl in the current process. I shall demonstrate with an example. Look at this. sh-2.05b$ pwd /tmp sh-2.05b$ cat test.sh #! /bin/sh cd /etc sh-2.05b$ ./test.sh sh-2.05b$ pwd /tmp sh-2.05b$ . ./test.sh sh-2.05b$ pwd /etc sh-2.05b$ So... (10 Replies)
Discussion started by: vino
10 Replies
Login or Register to Ask a Question

Featured Tech Videos