Hi, I have a my script here--
print "The Perl Script does the User health check and system health ch +eck...\n"; print "--------------------------------------------------------------- +------\n"; # use strict; my($OS); $OS = $^O; # need to test @ARGV before GetOptions shifts it if (@ARGV == 0) { print "\nNo options provided, using defaults (use -h to view option +s)\n"; } #GetOptions( 'h|help' => \$_help # ,'u|userdata' => \$_userdata # ,'s|systemdata' => \$_systemdata # ,'a|authresponsecode' => \$_authresponsecode # ,'o|outpur_dir' => \$_output_dir); #if( $_help ) { # printUsage(); # automatically exits the program #} use Getopt::Std; ###################################################################### +######## # Print the usage info and automatically exit ###################################################################### +######## sub printUsage() { print "\n\nUsage:"; print "\n perl MSLogStat.pl [options] [logfile1] [logfile2] ... [l +ogfile(n)]"; print "\n\nOptions:"; print "\n -h * display usage help"; print "\n -o * redirect the output to a directory"; print "\n -u * display user related data"; print "\n -a * display auth response codes"; print "\n -s * output only system related data"; print "\n"; exit; } ###################################################################### +######## # Print the authresponsecode ###################################################################### +######## sub authResponseCode () { print "AAFW_AUTH_SUCCESS = 0"; print "AAFW_AUTH_MORESTEPS = 1"; print "AAFW_AUTH_ID_NOT_FOUND = 2"; print "AAFW_AUTH_INVALID_CREDENTIAL = 3"; print "AAFW_AUTH_ACCOUNT_EXPIRED = 4"; print "AAFW_AUTH_ACCOUNT_INACTIVE = 5"; print "AAFW_AUTH_ATTEMPTS_EXHAUSTED = 6"; print "AAFW_AUTH_TOKEN_EXPIRED = 7"; print "AAFW_AUTH_CHALLENGE_EXPIRED = 8"; print "AAFW_AUTH_INVALID_REQUEST = 9"; print "AAFW_AUTH_CRED_REISSUED = 10"; print "AAFW_AUTH_INTERNAL_ERROR = 11"; print "AAFW_AUTH_UNSUPPORTED_MECH = 12"; print "AAFW_AUTH_LAST = 13"; } # redirect output to a directory: if( $_output_dir ) { # does this directory already exist? if (! -e $_output_dir) { if( $OS =~ "Win32" ) { `mkdir $_output_dir`; } else { `mkdir -p $_output_dir`; } } if (! -e $_output_dir) { die "Failed to create output directory $_output_dir\n"; } } if( $_authresponsecode ) { print "Printing the Auth Response Codes"; authresponsecode(); } sub userData() { #$LOG = $_logfile_name; $username=$2; open($LOG,"logfile.txt") or die "\nUnable to open log file:\n"; @stock = <$LOG>; @matches = (grep(/$username/, @stock)); print @matches; } my $opt = "hu:sao"; my %options; getopts( $opt , \%options ); printUsage() if defined $options{h} ; authResponseCode() if defined $options{a} ; userData() if defined $options{u} ;
in function userData() i want to make changes so that my script take username as command line arguement and logfile name also to be entered from command line,it can be multiple log files. Please advice me how can i do that. Please do suggest me if you find something to be changed here to work it more efficiently. Thanks NT

In reply to passing command line arguements to perl script by namishtiwari

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.