Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options

comment on

( #3333=superdoc: print w/replies, xml ) Need Help??

Hello harangzsolt33,

One thing I notice is that your sub RSPACE is essentially duplicating part of the functionality already present in Perl’s printf and sprintf builtin functions. In fact, your functions RSPACE and PRINT can be removed altogether, and the two places where PRINT is called can be written as follows:

# (1) in sub SearchFile: PRINT("FOUND: $FULLNAME"); # original printf " %-8dFOUND: %s\n", $TOTAL, $FULLNAME; # replacement # (2) in sub CheckDIR: if ($VERBOSE) { PRINT("SEARCHING: ", FormatPath($PATH)); } + # original printf " %-8dSEARCHING: %s\n", $TOTAL, FormatPath($PATH) if $VERBOSE; + # replacement

Note the use of a statement mofifier in the second case. In general, statement modifiers should be preferred over compound statements whenever a single statement is involved, as this simplifies the code.

Some of your coding conventions could also be improved (IMHO):

  • The use of all-uppercase variable names should be reserved for constants.
  • Magic numbers (even ASCII values) should be replaced by constants:
    use Const::Fast; const my $ASTERISK => 42; const my $DOT => 46; const my $QUESTION => 63; # etc.
  • In a script intended to be called directly from the command line, and not used as a module, the distinction between “public” and “private” functions is pointless. (Conversely, if the script is intened to be called as a module, it should begin with an appropriate package declaration.)

I haven’t studied your code in detail. Overall, it looks good: well thought-out and implemented.

Regarding posting:
(1) It would be better to include your code in the question itself (inside <readmore> tags!) than to provide a web address, as the latter is likely to become invalid and so render this thread incomprehensible to future readers.
(2) You say you have tested the program. Adding your test code (again, in <readmore> tags, of course) would aid the monks in evaluating your code.

Hope that helps,

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,

In reply to Re: Perl program to search files by Athanasius
in thread Perl program to search files by harangzsolt33

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, 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, 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.
  • Log In?

    What's my password?
    Create A New User
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others exploiting the Monastery: (4)
    As of 2020-11-30 18:32 GMT
    Find Nodes?
      Voting Booth?

      No recent polls found