Aman Cgiperl wrote: > > Execute the following on cmd line as follows > $./cnt.pl <string> , > You can replace the comma (,) on the command line to find any other > character's occurrence in the string > _______________________ > #!/usr/bin/perl > > for(;$i<length($ARGV[0]);$i++) { > $str[i] = substr($ARGV[0],$i,1); > if($str[i] eq $ARGV[1]) { > $cnt++; > } > } > print $cnt; > ----------------------- > Aman > > PS: I am just a novice, so there might be quicker ways I yet don't know > of !!!
Hi Aman. No offense but that looks more like C than Perl. Why are you using an array (@str) to store the current character instead of a scalar? for ( ; $i < length( $ARGV[0] ); $i++ ) { $str = substr( $ARGV[0], $i, 1 ); if ( $str eq $ARGV[1] ) { $cnt++; } } print $cnt; As a matter of fact, why not just use the substr in the comparison? for ( ; $i < length( $ARGV[0] ); $i++ ) { if ( substr( $ARGV[0], $i, 1 ) eq $ARGV[1] ) { $cnt++; } } print $cnt; And of course we can make the for statement more perl-like. for ( 0 .. length( $ARGV[0] ) - 1 ) { if ( substr( $ARGV[0], $_, 1 ) eq $ARGV[1] ) { $cnt++; } } print $cnt; And if you really want to get cute you can put it all on one line: substr( $ARGV[0], $_, 1 ) eq $ARGV[1] and $cnt++ for 0 .. length( $ARGV[0] ) - 1; print $cnt; :-) John -- use Perl; program fulfillment -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]