in reply to Why can't I create a directory with File::Spec

subroutines should take arguments, not work on global vars, this (scoping) is very important concept to learn

initialize( "ro/sham/bo"); sub initialize { my( $ARCHIVE ) = @_; make_path( $ARCHIVE ); }

Also read Tutorials: Variable Scoping in Perl: the basics,
Coping with Scoping , Mini-Tutorial: Perl's Memory Management,
Lexical scoping like a fox,