Thanks in advance#!/usr/bin/perl -T # prtadm.cgi # printer admin page use strict; use warnings; use diagnostics; use CGI qw/:standard/; use POSIX qw(strftime); use Data::Dumper; # For testing # Clean up our UNIX environment # for more infor read perldoc perlsec $ENV{'PATH'} = '/bin:/usr/bin'; delete @ENV{qw(IFS CDPATH ENV BASH_ENV)}; ####### Declarations ####### my ($SERVER, @LINE, %svr_hash); my (@SERVERS, @TMP_); my $now=strftime "%m/%d/%Y %H:%M:%S", (localtime); my $configfile="/var/www/cgi-bin/prt.cfg"; ### End Declarations ####### ### Pull in configs ### open (CFGFILE,$configfile) || die "unable to open $configfile: $!\n"; foreach $_(<CFGFILE>) { next if /^#/; next if /^\s/; chomp; @TMP_=split(/,/,$_); push (@SERVERS,[ @TMP_ ]); } my @SERVER_LIST=map($_->[0], @SERVERS); for my $i (0 .. $#SERVER_LIST) { $svr_hash{$i} = "$SERVER_LIST[$i]"; } my %rev_srv_num=reverse %svr_hash; ## Start HTML ## print header, start_html; print "<tt><center>",br; print h3("AWI", "Printer", "Administration"); print "$now</center>\n"; print hr,br; ## End of header ## print start_form; print "\n<div align=right>Choose Server",br, popup_menu(-name=>'SERVER', -values=>[@SERVER_LIST], -default=>[$SERVER_LIST[0]]), submit('go'), "\n</div>",br; $SERVER=param('SERVER'); if (param('SERVER')) { print "Server $SERVER is number $rev_srv_num{$SERVER}\n",br; print "is default: @SERVERS[$rev_srv_num{$SERVER}]->[1]\n",br, "print subsystem: @SERVERS[$rev_srv_num{$SERVER}]->[2]\n",br, "connection type: @SERVERS[$rev_srv_num{$SERVER}]->[3]\n",br; get_status("@SERVERS[$rev_srv_num{$SERVER}]->[2]","$SERVER"); #get_status("cups","rlinux1"); } else { print "Error\n";br; } # End else print end_html; sub get_status { my $print_subsystem=shift; # chomp ($print_subsystem); # not needed my $server_name=shift; # chomp ($server_name); # not needed print "you passed $print_subsystem for server $server_name\n",br; print Dumper $print_subsystem; print Dumper $server_name; my @STATUS=`/usr/bin/lpstat -h $server_name -o`; if ( "$print_subsystem" == "cups" ) { for $_(@STATUS) { print "$_ \n",br; } } else { print "unknown subsytem type: $print_subsystem \n",br; } } # end sub get_status
2005-03-11 Janitored by Arunbear - added readmore tags, as per Monastery guidelines
In reply to passing vars to a sub by tcf03
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |