How to Use a Form Data in Perl
This page shows how to send information from a web page form to a perl script.
The Form
Create a standard HTML form with the input values you wish to pass to the script. For example:
<form name="myForm" method="post" action="myScript.cgi"> <input type="text" name="textfield"> <input type="hidden" name="hiddenfield" value="Secret Text"> <input type="submit" name="subbtn" value="Submit"> </form>
The Script Code
In the perl script, use a block of code like the one below to extract the form data. The comments are included to show you what is happening - you can safely remove them.
# Read the standard input (sent by the form):
read(STDIN, $FormData, $ENV{'CONTENT_LENGTH'});
# Get the name and value for each form input:
@pairs = split(/&/, $FormData);
# Then for each name/value pair....
foreach $pair (@pairs) {
# Separate the name and value:
($name, $value) = split(/=/, $pair);
# Convert + signs to spaces:
$value =~ tr/+/ /;
# Convert hex pairs (%HH) to ASCII characters:
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
# Store values in a hash called %FORM:
$FORM{$name} = $value;
}
The form's input values can now be used with a key like so: $FORM{'inputname'} , where 'inputname' is the name of the form input item. For example:
print "The following text was entered in the e text field: $FORM{'textfield'}";
print "The hidden text is: $FORM{'hiddenfield'}";