Home > Archive > PERL CGI Beginners > November 2006 > what does this mean?
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
what does this mean?
|
|
| Mark Tarver 2006-11-24, 3:55 am |
| read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
I'm a newbie - this means what?
Something like
'Read from standard input into a variable $buffer, n number of tokens
determined by
n = $ENV{'CONTENT_LENGTH'}.'
Just a wild guess.
Mark
| |
| FishMonger 2006-11-24, 11:39 am |
| quote: Originally posted by Mark Tarver
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
I'm a newbie - this means what?
Something like
'Read from standard input into a variable $buffer, n number of tokens
determined by
n = $ENV{'CONTENT_LENGTH'}.'
Just a wild guess.
Mark
perldoc -f read
read FILEHANDLE,SCALAR,LENGTH,OFFSET
read FILEHANDLE,SCALAR,LENGTH
Attempts to read LENGTH *characters* of data into variable
SCALAR from the specified FILEHANDLE. Returns the number of
characters actually read, 0 at end of file, or undef if there
was an error (in the latter case $! is also set). SCALAR will be
grown or shrunk so that the last character actually read is the
last character of the scalar after the read.
An OFFSET may be specified to place the read data at some place
in the string other than the beginning. A negative OFFSET
specifies placement at that many characters counting backwards
from the end of the string. A positive OFFSET greater than the
length of SCALAR results in the string being padded to the
required size with "\0" bytes before the result of the read is
appended.
The call is actually implemented in terms of either Perl's or
system's fread() call. To get a true read(2) system call, see
"sysread".
Note the *characters*: depending on the status of the
filehandle, either (8-bit) bytes or characters are read. By
default all filehandles operate on bytes, but for example if the
filehandle has been opened with the ":utf8" I/O layer (see
"open", and the "open" pragma, open), the I/O will operate on
UTF-8 encoded Unicode characters, not bytes. Similarly for the
":encoding" pragma: in that case pretty much any characters can
be read. | |
| Paul Lalli 2006-11-24, 9:55 pm |
| Mark Tarver wrote:
> read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
>
> I'm a newbie - this means what?
It means you should read the standard built-in documentation. :-P
perldoc -f read
>
> Something like
>
> 'Read from standard input into a variable $buffer, n number of tokens
> determined by
> n = $ENV{'CONTENT_LENGTH'}.'
>
> Just a wild guess.
That is correct. It's also an absolutely horrid way of trying to get
the CGI parameters passed to your script. Don't do it. If you have a
program that uses this, trash it. Learn to write programs the correct
way. See:
perldoc -f CGI
Paul Lalli
|
|
|
|
|