See inline comments

> -----Original Message-----
> From: Bob H [mailto:[EMAIL PROTECTED]]
> Sent: Monday, July 22, 2002 11:12 AM
> To: [EMAIL PROTECTED]
> Subject: UPPERCASE and DOING MULTIPLE THINGS
> 
> 
> I have a script that is *supposed* to search a file and make certain 
> words that I have in an array uppercase. My brain is not grokking it.
> 
> Q1: What is wrong with my script (below)?
> Q2: Can I update a file in place?
> Q3: How do I run multiple things against one file in one script?
> 
> === SCRIPT ===
> #!/usr/bin/perl
> use strict;
> use warnings;
> 
> # variables
> my $word = undef;
> 
> # setup the words to uppercase
> my @words = qw/ Mary John Joe /;
#you want to use pattern matching like this:
my @words = map qr/$_/i, qw/ Mary John Joe /;

> 
> open FILE, ">> NEW1 "  or die "can't open FILE:  $!";
> 
> while (<>) {
>      foreach $word (@words) {
>          $word = ~ tr /a-z/A-Z/;
>          print FILE;
>      }
# this whole foreach just changes the words in the array not the file.
# note that you are also reading in from stdin.
# to fix do this
        foreach $word (@words){
                s/ ## substitute in current line, 
                ($word) # match $word (Mary) case-insenstive, 
                / # and replace 
                uc($1) # with uppercase of same word.
                /gex;  # g = globally (throughout line as many times), e =
eval right side (uc($1)), x = ignore whitespace and comments
        }
        print FILE; # print to file after all @words are changed in line
> }
> 
> # close the file
> close (FILE);
> 
> 
> 
> -- 
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 

----------------------------------------------------------------------------
--------------------
The views and opinions expressed in this email message are the sender's
own, and do not necessarily represent the views and opinions of Summit
Systems Inc.


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to