You know, paradigm, paradigmism, as in "It's a whole new paradigm". This particular snippet creates directories in order.
map {mkdir $DIR{$_}} sort {length($DIR{$a}) <=> length($DIR{$b})} keys %DIR;
  • Comment on Pascucci Paradigm for ordered operations on a homogenous hash (specificlaly, mkdir from hash)
  • Download Code

Replies are listed 'Best First'.
Re: Pascucci Paradigm for ordered operations on a homogenous hash (specificlaly, mkdir from hash)
by Aristotle (Chancellor) on Aug 18, 2002 at 17:40 UTC
    Why map in void context? mkdir $DIR{$_} for sort { length $DIR{$a} <=> length $DIR{$b} } keys %DIR; But you're not using the hash keys for anything other than accessing the hash elements. mkdir $_ for sort { length $a <=> length $b } values %DIR; That could be done with a Schwartzian transform. mkdir $_->[0] for sort { $a->[1] <=> $b->[1] } map [ $_, length $_ ], values %DIR; Finally, though I may be wrong, it appears to me due to your peculiar definition of order that what you really want to do is mkdir $_ for sort { $a =~ tr[/][] <=> $b =~ tr[/][] } values %DIR; Or with a Schwarzian transform: mkdir $_->[0] for sort { $a->[1] <=> $b->[1] } map [ $_, tr[/][] ], values %DIR; Update: good point; MrNobo1024++

    Makeshifts last the longest.

      The length builtin is fast. It dosen't need to calculate the string length, since the SVt_PV struct has that built in. The Schwartzian transform is good for sorting by an expensive function, but all that array creation/dereferencing will only slow things down with a fast function like length.

      --MrNobo1024
      s]]HrLfbfe|EbBibmv]e|s}w}ciZx^RYhL}e^print

Re: Pascucci Paradigm for ordered operations on a homogenous hash (specificlaly, mkdir from hash)
by sauoq (Abbot) on Aug 19, 2002 at 00:58 UTC
    How about:
    use File::Path; mkpath([values %DIR], 0, 0755);
    -sauoq
    "My two cents aren't worth a dime.";