Visit Our UNIX and Linux User Community


Perls "Referance" question


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Perls "Referance" question
# 1  
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..
# 2  
Old 08-26-2002
$cur = CGI->new();

Isn't CGI->new() a function that is called when you do $cur = CGI->new(); right?

To find out what CGI->new() does, I would look in the perl libs where this package (CGI) resides.
# 3  
Old 08-27-2002
CGI->new() creates a new instance of a CGI object to take care of the request coming to this cgi application. It would contain all the request parameters, the request type etc. It is a easier(??) and faster way of working through a cgi program

Previous Thread | Next Thread
Test Your Knowledge in Computers #467
Difficulty: Easy
In computer networking, telecommunication and information theory, broadcasting is a method of transferring a message to all recipients using reverse polish notation.
True or False?

9 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. 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

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

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

7. 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

8. 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

9. 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

Featured Tech Videos