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
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.