Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

create gagillian files in current directory

by jonagondos (Novice)
on Dec 11, 2012 at 07:47 UTC ( #1008229=CUFP: print w/ replies, xml ) Need Help??

hi this script creates a gagillian files in your current directory and reverses a file, enjoy lol.

#!/usr/bin/Perl if (@ARGV != 1) { print "usage ./catrev.pl file1\n"; print "@ARGV"; exit; } else { $file1 = pop(@ARGV); open(FILE1,$file1); @array1 = <FILE1>; foreach (@array1) { $each = reverse($_); print "$each\n" } print "what would you like your file name to be?\n"; $filename = <STDIN>; chomp ($filename); if (($filename eq "") || (defined $filename eq 'false')) { print "enter some data!"; exit; } else { sub hellofile { print "$_[0] is the file to be written"; open (FILE, "> $_[0]") or die "cant create file"; } $i == 0; while ($i < 1000000000000000000000) { hellofile($filename); $filename .= poop; $i++; } } }

Comment on create gagillian files in current directory
Download Code
Re: create gagillian files in current directory
by Anonymous Monk on Dec 11, 2012 at 07:53 UTC

      I've moved this from SoPW to CUFP.

      perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'

        Because creating a gazillion files in my current directory is cool?

        ;)


        Dave

Re: create gagillian files in current directory
by jwkrahn (Monsignor) on Dec 11, 2012 at 11:48 UTC
    #!/usr/bin/Perl

    perl (and *nix) are case sensitive so that is usually spelled:

    #!/usr/bin/perl


    open(FILE1,$file1);

    You should verify that the file opened correctly:

    open FILE1, '<', $file1 or die "Cannot open '$file1' because: $!";


    if (($filename eq "") || (defined $filename eq 'false')) {

    defined $filename will never be eq to the string 'false'

Re: create gagillian files in current directory
by MidLifeXis (Prior) on Dec 11, 2012 at 13:48 UTC

    Just a few comments focused on your code (in other words, don't take it personally).

    Under many (most?) filesystems, once the number of files in a directory reaches a certain point, filesystem code starts to melt down.

    There is also a limit on many filesystems for the length of a file name. Once you append the string 'poop' to a filename a few times (60ish, if your limit happens to be around 240), you will run into this limit.

    $i == 0; does not do what you think it does.

    I would recommend that you use strict; use warnings; at the top of your code. While not required, it can help to catch some common mistakes.

    Are the two parts of your code related? It seems that the part before the user prompt is unrelated to the part after the prompt. Ideally, unrelated code should be broken into different units of concern (scripts, modules, subroutines, etc).

    The sub hellofile within the else block does not do what it appears you think it does. The sub will be defined even if the else block does not get executed. sub declarations are not nested, and even if nested in other blocks, will be globally visible.

    The indentation could use some work. The nesting does not make it easy to read.

    Update (2012/12/12): Minor grammar tweaks.

    --MidLifeXis

Re: create gagillian files in current directory
by Plankton (Priest) on Dec 14, 2012 at 20:34 UTC

    This reminds me of a bad Bush joke.

    During the 2nd Gulf War, Chenny comes into the Oval Office and says to Bush, "2 Brazilian solders where killed yesterday".

    Bush puts his head in his hands and say "Oh My GOD!!!, How many is Brazilian?"

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: CUFP [id://1008229]
Approved by tobyink
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (6)
As of 2014-09-15 02:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite cookbook is:










    Results (145 votes), past polls