Don't ask to ask, just ask | |
PerlMonks |
Re: No such file or directory errorby Anonymous Monk |
on Jan 10, 2013 at 08:59 UTC ( [id://1012616]=note: print w/replies, xml ) | Need Help?? |
How come when I run this script ... it works just fine, but when I try using it in a bigger program it gives me the ":No such file or directory found at lingo4.pl line 508" error? Because cwd is cwd and and readdir doesn't return absolute paths If you opendir /a/s/d/f and readdir returns . .. foo.txt, then if you try to open foo.txt, you're trying to open cwd()/foo.txt not /a/s/d/f/foo.txt, so open will fail you should have used File::Find::Rule Because your bigger program is unwieldy subroutine declarations are mixed with the main code -- write a single subroutine called Main, and confine the main logic of your program there -- see template at (tye)Re: Stupid question (and see one discussion of that template at Re^2: RFC: Creating unicursal stars your code is 11 times as long as it should be -- you know how to make subroutines, so write subroutines, don't copy/paste the same code (same loops) 11 times You're using short and/or meaningless variable names and putting the meaning in comments -- just use meaningful variable names :) (sub folder) you already know how to use hashes, so don't code long if/else structures to return an integer, use a hash (calling folder) dozens of while loops are not a substitute for a giant if/else structure -- which you wouldn't need if sub folder teturned a string instead of an integer or just have sub folder take care of the printing and while you're at it "folder" is a terrible name for a "sub" -- call it sub processFolder If you have 14 minutes, watch String Calculator TDD Kata done in Perl , then rewrite your code in a similar fashion
Another example Out of memory and While replacements with excel XLSX application / Re^2: Out of memory and While replacements with excel XLSX application good luck
In Section
Seekers of Perl Wisdom
|
|