Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Comment on

( #3333=superdoc: print w/replies, xml ) Need Help??
Let's go line by through the code.

use Path::Class;

So, we'll use Path::Class. According to the linked docs, this use statement exports 2 functions: dir and file. So now we know anytime we see the function dir, we are invoking the one from Path::Class. From the docs:

dir

A synonym for Path::Class::Dir->new.

So the correct place to find docs on the object returned by dir is Path::Class::Dir. Let us continue:
# Iterate over the content of foo/bar while (my $file = $dir->next) {
Now we've invoked the method next via an arrow dereference, so we check the appropriate package for the object for the method documentation. If you didn't realize it what package it was, you can use ref to tell you via the debug statement print ref $dir;.
$dir_or_file = $dir->next()

A convenient way to iterate through directory contents. The first time next() is called, it will open() the directory and read the first item from it, returning the result as a Path::Class::Dir or Path::Class::File object (depending, of course, on its actual type). Each subsequent call to next() will simply iterate over the directory's contents, until there are no more items in the directory, and then the undefined value is returned....

So now we have either a Path::Class::Dir or a Path::Class::File, depending on what the iterator hit. In both cases, methods by the name of stringify and is_dir are available and documented in the appropriate docs. When you get to the line

next if $file->is_dir();

we see next is not associated with a object dereference, so unless Path::Class exports something by that name, it will be a Perl CORE function. So, if we check the docs, either via the web at next or on the command line via perldoc -f next, we see it's a language keyword for flow control.

This is all recoverable if you follow the logical flow of the program.


#11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.


In reply to Re: Arrow Operator and questions related to Path::Class by kennethk
in thread Arrow Operator and questions related to Path::Class by kamal

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, 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?
    Username:
    Password:

    What's my password?
    Create A New User
    Chatterbox?
    [Corion]: Maybe the solution would be to launch a cron job every minute that takes two measurements a minute apart and sends a mail if the usage is below on the first and above threshold on the last measurement
    [marto]: that's essentially it :)
    [marto]: I think the long term solution would be to have sysadmins that do their job, so I don't have to do everything :P
    [marto]: they already have an entire BMC patrol system, which they disabled, because it was sending out spurious messages. So rather than fix the issue, or even find out what it was, they turned it off. No messages, can't be any problems, right?
    [Corion]: marto: But having open tickets / incidents increases the pressure on them ;) Of course, likely your contract / SLA specifies an upper limit for the number of incidents :-D
    [Corion]: marto: Ow ...
    [marto]: Corion They don't get into trouble for the number of tickets, or even breached tickets they have
    [marto]: which is a core issue with the client
    [Corion]: marto: Yeah, I can imagine that

    How do I use this? | Other CB clients
    Other Users?
    Others wandering the Monastery: (8)
    As of 2017-01-24 10:18 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?
      Do you watch meteor showers?




      Results (203 votes). Check out past polls.