http://www.perlmonks.org?node_id=117237


in reply to Ongoing chmod lack of success

So I learnt that '0755' has a numerical value of decimal 755, whereas 0755 has a numerical value of octal 755. Worth knowing. And now I fixed my script and it does exactly what I want and I'm very happy. Thanks to eveyrone.
#!/usr/bin/perl -w use strict; use CGI qw(:standard); print header, start_html( -title=>'CHMOD UTILITY' ); &do_chmod if param; &send_form; sub do_chmod { my $Perm; if (param('Action') eq 'Not Executable') { $Perm = 0644; } else { $Perm = 0755; } for (param('Dirs')) { my @files; push @files, $_ while <$_*.p*>; if (chmod $Perm, @files) { print "Changed permissions on " . join(" ; ",@files) . " t +o " . $Perm . "<BR>"; } else { print "Could not change perms on " . join(" ; ",@files) . +" to " . $Perm . "<BR>"; } } print "DONE"; } sub send_form { my @dirs; push @dirs, $_ while <../*/>; print startform( -name=>'mainform', -method=>'POST', -action=>'chmod.pl', ), checkbox_group( 'Dirs', [@dirs], [], 1, ), submit( -name=>'Action', -value=>'Executable', ), submit( -name=>'Action', -value=>'Not Executable', ), endform, end_html; }


George Sherston