Sponsored Content
Full Discussion: Perls "Referance" question
Top Forums Shell Programming and Scripting Perls "Referance" question Post 26964 by Optimus_P on Monday 26th of August 2002 03:51:08 PM
Old 08-26-2002
Perls "Referance" question

ok im on chap19 (cgi programming) of learning perl 2nd edition.

I am just not understanding how the referances to a class work.

i understand the following example:

Code:
@array1=qw( 1 2 3 4);
$aref = \@array1;
@array2=qw(5 6 7 8);
$aref=\@array2;

$# of $aref is now 1

print $aref[1][2]; # this will print "7"

but when the example says..

$cur = CGI->new(); # this is where i get lost. what value is $cur holding? its a scalar value i know this. (i think) but what is new()?

and why is the module CGI referanceing it and saveing its values to $cur.


Code:
 here is the example CGI script i dont understand the methods useage .  this lesson is in makeing a cgi guestbook.

#! /usr/bin/perl -w

use 5.004;
use strict;
use CGI qw(:standard);
use Fcntl qw(:flock);

sub bail {
        my $error = "@_";
        print h1("Enexpected Error"), p($error), end_html;
        die $error;
}

my (
        $CHATNAME,
        $MAXSAVE,
        $TITLE,
        $cur,
        @entries,
        $entry
);

$TITLE = "Simple Guestbook";
$CHATNAME= "chatfile";
$MAXSAVE = 10;

print header, start_html($TITLE), h1($TITLE);

$cur = CGI->new();
if ($cur->param("message")) {
        $cur->param("date", scalar localtime);
        @entries=($cur);
}

open(CHANDLE, "+< $CHATNAME") || bail("cannot open $CHATNAME: $!");

flock(CHANDLE, LOCK_EX) || bail("cannot flock $CHATNAME: $!");

while (!eof(CHANDLE) && @entries < $MAXSAVE) {
        $entry = CGI->new(\*CHANDLE);
        push @entries, $entry;
}

seek(CHANDLE, 0, 0) || bail("cannot rewind $CHATNAME: $!");
foreach $entry (@entries) {
        $entry->save(\*CHANDLE);
}
truncate(CHANDLE, tell(CHANDLE)) || bail ("cannot truncate $CHATNAME: $!");
close(CHANDLE) || bail ("cannot close $CHATNAME: $!");

print hr, start_form;
print p("Name:", $cur->textfield(
        -NAME => "message"));
print p("Message:", $cur->textfield(
        -NAME => "message",
        -OVERRIDE => 1,
        -SIZE => 50));
print p(submit("send"), reset("clear"));
print end_form, hr;

print h2("Prior Messages");
foreach $entry (@entries) {
        printf("%s [%s]: %s",
        $entry->param("date"),
        $entry->param("name"),
        $entry->param("message"));
        print br();
}
print end_html;


Last edited by Optimus_P; 08-26-2002 at 06:22 PM..
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies

2. UNIX and Linux Applications

A question/problem about oracle "tns listener" and "enterprise manager"

hi, I have * an IBM P550 machine, * an AIX 5.3 running on it and * an oracle database, already installed on it. The problem (or question of my own) is: Oracle tns listener, "CT_LISTENER", and the enterprise manager (EM) of the instance, which is uniq instance and called... (0 Replies)
Discussion started by: talipk
0 Replies

3. UNIX for Advanced & Expert Users

A question/problem about oracle "tns listener" and "enterprise manager"

hi, I have a problem about the Oracle related components. I'm not able to find any answer yet, and waiting for your responses... Here is the configuration of my system: * an IBM P550 machine, * an AIX 5.3 running on it and * an oracle database, already installed on it. The problem (or... (1 Reply)
Discussion started by: talipk
1 Replies

4. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

5. Shell Programming and Scripting

Question about the difference between "for" and "while" loop

dear all, i got some questions about for/while loop when working on redirect command output to for/while loop. take one for example : in for loop : allfiles=`find /var/log -maxdepth 1 -type f -mtime +5` index=1 for ((i=0; i<${#allfiles}; i++)); do echo "$index:${allfiles}" ... (2 Replies)
Discussion started by: tiger2000
2 Replies

6. Shell Programming and Scripting

How to get reason for ping failure using perls Net::Ping->new("icmp");?

Hi I am using perl to ping a list of nodes - with script below : $p = Net::Ping->new("icmp"); if ($p->ping($host,1)){ print "$host is alive.\n"; } else { print "$host is unreacheable.\n"; } $p->close();... (4 Replies)
Discussion started by: tavanagh
4 Replies

7. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

8. Shell Programming and Scripting

Bash script - Print an ascii file using specific font "Latin Modern Mono 12" "regular" "9"

Hello. System : opensuse leap 42.3 I have a bash script that build a text file. I would like the last command doing : print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt where : print_cmd ::= some printing... (1 Reply)
Discussion started by: jcdole
1 Replies

9. AIX

Apache 2.4 directory cannot display "Last modified" "Size" "Description"

Hi 2 all, i have had AIX 7.2 :/# /usr/IBMAHS/bin/apachectl -v Server version: Apache/2.4.12 (Unix) Server built: May 25 2015 04:58:27 :/#:/# /usr/IBMAHS/bin/apachectl -M Loaded Modules: core_module (static) so_module (static) http_module (static) mpm_worker_module (static) ... (3 Replies)
Discussion started by: penchev
3 Replies
Plack::Handler::CGI(3pm)				User Contributed Perl Documentation				  Plack::Handler::CGI(3pm)

NAME
Plack::Handler::CGI - CGI handler for Plack SYNOPSIS
Want to run PSGI application as a CGI script? Rename .psgi to .cgi and change the shebang line like: #!/usr/bin/env plackup # rest of the file can be the same as other .psgi file You can alternatively create a .cgi file that contains something like: #!/usr/bin/perl use Plack::Loader; my $app = Plack::Util::load_psgi("/path/to/app.psgi"); Plack::Loader->auto->run($app); This will auto-recognize the CGI environment variable to load this class. If you really want to explicitly load the CGI handler, you can. For instance you might do this when you want to embed a PSGI application server built into CGI-compatible perl-based web server: use Plack::Handler::CGI; Plack::Handler::CGI->new->run($app); DESCRIPTION
This is a handler module to run any PSGI application as a CGI script. UTILITY METHODS
setup_env() my $env = Plack::Handler::CGI->setup_env(); my $env = Plack::Handler::CGI->setup_env(\%override_env); Sets up the PSGI environment hash for a CGI request from %ENV> and returns it. You can can provide a hashref of key/value pairs to override the defaults if you would like. SEE ALSO
Plack perl v5.14.2 2011-06-22 Plack::Handler::CGI(3pm)
All times are GMT -4. The time now is 01:28 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy