Gowri Chandra Sekhar Barla, TLS, Chennai wrote:

From: John W. Krahn [mailto:[EMAIL PROTECTED]

$ echo "
/* requesting for the script
  * more
  * and more
  * for printing line number */

Fun_script()
{
  Int a; /* local parameter */
  Int b; /* local parameter */

        /* adding the
           Two numbers */
    Int c = a+b;

  }/* function end */

" | perl -e'
my ( $count, $in_comment );
while ( <> ) {
     my $temp = $_;
     s!/\*.*?\*/!!g;
     s!/\*.*?$!! and $in_comment++;
     $in_comment and s!^.*?\*/!! and $in_comment--;
     $in_comment and s/.*//;
     s/^\s+//;
     s/\s+$//;
     print length() ? ++$count . " $temp" : $temp;
     }
'

/* requesting for the script
  * more
  * and more
  * for printing line number */

1 Fun_script()
2 {
3  Int a; /* local parameter */
4  Int b; /* local parameter */

        /* adding the
           Two numbers */
5    Int c = a+b;

6  }/* function end */

John thanks for replay, script is working fine

I am unable to understand following expression s!/\*.*?(?:\*/|$)!!,

Match '/*' followed by zero or more of anything followed by either '*/' or the end-of-line and replace that with nothing.


I am unable to find the functionality of 1) s!

s!!! (or s///) is the substitution operator.

perldoc perlop


2)?:

?: is the conditional operator.

perldoc perlop



John
--
Perl isn't a toolbox, but a small machine shop where you
can special-order certain sorts of tools at low cost and
in short order.                            -- Larry Wall

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to