|go ahead... be a heretic|
Missing from File::Spec(?)by ddd (Acolyte)
|on Sep 14, 2000 at 23:08 UTC||Need Help??|
ddd has asked for the wisdom of the Perl Monks concerning the following question:
After a recent project that used File::Spec, File::Find, and others I'd like to add another section to tye's File::Spec review ('the good', 'the bad', and 'the ugly') ...
(Please forgive me for using unix paths in the following discussion)
File::Spec->canonpath( $path ); does remove extra '/' and '/.' from paths, but it does not, however, fix paths like '/a/1/../2' into '/a/2'.
To do that I had to resort to regexps something like $path =~ s(\.\./)()g - which introduces platform-specific code and defeats the purpose of using File::Spec in the first place.
Q: What is the correct (x platform) method for removing 'dir/..' from paths?
A note on my ignorance: None of the systems that I use perl on (all 5.005_003 or older) have documentation (or code) for either abs2rel() or rel2abs() in File::Spec, or File::Spec::Unix. Are these new in 5.6? Perhaps theses functions are part of the answer to my question.
All the best,