Your original command line was
cat some_file_holding3numbers.txt | avg_routines.pl (+some way of spe +cifying avg3())> avg.txt
The more usual way of forming that is
perl -w avg_routines.pl (+some way of specifying avg3()) <some_file_ho +lding3numbers.txt >avg.txt
That aside, if the routine you wanted to use was inside the existing script, you could name the routine on the command line then use
my $Routine = shift; # Get routine name from cmd line &{ $Routine }; # Call named routine
to actually run it (I haven't tried this code -- this is just something to get you pointed in the right direction). This routine would then read input from the command line via the diamond operator while (<>), average the three numbers and output the average using print.

If the code's in another module, you'll have to include the module name with the routine name, and either use it within your script or bring it in using the -M command line argument for Perl.

This sounds like an awfully complicated way to do something fairly simple. What problem are you really trying to solve?

--t. alex

"Of course, you realize that this means war." -- Bugs Bunny.


In reply to Re: routine as subroutine and on command line by talexb
in thread routine as subroutine and on command line by wah

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.