Sanobabu
May 10 2005, 08:12 PM
Sincerely your,
sanobabu
[Email Removed]
--> www.MailNavigator.com - Find your email and news!
Kevin Bliss
May 11 2005, 02:17 AM
-----Original Message-----
From: Larsen, Errin M HMMA/IT [mailto:[Email Removed]]
Sent: Friday, May 06, 2005 8:15 AM
To: [Email Removed]
Subject: gcc on Solaris
....
And I execute the following command line to test the gcc installation:
# gcc helloworld.c -o helloworld
ld.so.1: gcc: fatal: libiconv.so.2: open failed: No such file or
directory Killed
The error is telling you that it cannot find a required library
"libiconv.so.2". I found it in /usr/local/lib. Check to see if it is
there. If the file is there then check that your environment has the
path to libiconv.so.2 in the LD_LIBRARY_PATH variable. It should be
something like LD_LIBRARY_PATH=/usr/lib:/usr/local/lib. If the file
doesn't exist install the package you found on Sunfreeware (since the
one I found was in /usr/local/lib this did not come from a Sun included
package).
------------------------------------------------------------------------------
This email is confidential and may be legally privileged.
It is intended solely for the addressee. Access to this email by anyone else, unless expressly approved by the sender or an authorized addressee, is unauthorized.
If you are not the intended recipient, any disclosure, copying, distribution or any action omitted or taken in reliance on it, is prohibited and may be unlawful. If you believe that you have received this email in error, please contact the sender, delete this e-mail and destroy all copies.
==============================================================================
----- Original Message -----
From: <[Email Removed]>
To: <[Email Removed]>
Sent: Wednesday, May 11, 2005 2:23 PM
Subject: Re: rename files
QUOTE |
----- Original Message ----- From: <[Email Removed] To: <[Email Removed] Sent: Wednesday, May 11, 2005 2:08 PM Subject: rename files
Hi,
I want to rename all the files in a directory with filenames starting 1.jpg to n.jpg. Why this code does not rename the files?
More on above, All the files are already named as 28.jpg, 59.jpg, 12.jpg, 10.jpg etc. but not in continuous order
After I run the script the, all the files are listed only if the (die "can not rename file: $!n";) line is commented. In the presense of the *die* line, the output is below: only 10.jpg shows up in printed files list. ------ 10.jpg can not rename file: No such file or directory
Thanks.
Terminated with exit code 2.
opendir(DIR, "/tmp") or die "can not open dir: $!n"; my @files = grep {/.jpg/ } readdir(DIR); closedir(DIR);
my $count = 1;
foreach (@files){ print "@filesn"; # works: prints all the files my $new = $_; $new =~ s/(.*)(.jpg)/$count$2/;
|
Thanks Teddy,
but after changing this >> $new =~ s/(.*)(.jpg)/$count$2/;
to $new =~ s/(d+)(.jpg)/$count$2/;
does not solve it either.??
QUOTE |
rename($_, $new) or die "can not rename file: $!n"; print "$_ renamed to $newn"; $count++; }
-- To unsubscribe, e-mail: [Email Removed] For additional commands, e-mail: [Email Removed] <http://learn.perl.org/> <http://learn.perl.org/first-response
|
----- Original Message -----
From: <[Email Removed]>
To: <[Email Removed]>
Sent: Wednesday, May 11, 2005 2:23 PM
Subject: Re: rename files
QUOTE |
----- Original Message ----- From: <[Email Removed] To: <[Email Removed] Sent: Wednesday, May 11, 2005 2:08 PM Subject: rename files
Hi,
I want to rename all the files in a directory with filenames starting 1.jpg to n.jpg. Why this code does not rename the files?
More on above, All the files are already named as 28.jpg, 59.jpg, 12.jpg, 10.jpg etc. but not in continuous order
After I run the script the, all the files are listed only if the (die "can not rename file: $!n";) line is commented. In the presense of the *die* line, the output is below: only 10.jpg shows up in printed files list. ------ 10.jpg can not rename file: No such file or directory
Thanks.
Terminated with exit code 2.
opendir(DIR, "/tmp") or die "can not open dir: $!n"; my @files = grep {/.jpg/ } readdir(DIR); closedir(DIR);
my $count = 1;
foreach (@files){ print "@filesn"; # works: prints all the files my $new = $_; $new =~ s/(.*)(.jpg)/$count$2/;
|
sorry did not include the blackslash *.* for dot match.
but after changing this >> $new =~ s/(.*)(.jpg)/$count$2/;
to $new =~ s/(d+)(.jpg)/$count$2/;
does not solve it either.??
QUOTE |
rename($_, $new) or die "can not rename file: $!n"; print "$_ renamed to $newn"; $count++; }
|
Bright True
May 11 2005, 06:55 PM
The following would rename any file in a directory (.anything) into numbers
in the same extention i hope it will be usfull
opendir(DIR,"$dir") or print "$!";
my @content = sort(readdir(DIR));
closedir(DIR);
my $no=0;
*foreach my* $number (@content){
$no++;
$number =~m/S+.(S+)/;
rename("$dir/$number","$dir/$no.$1");}
by the way , you forgot to mention the directory you want to rename file in
therefore you got this Error : can not rename file: No such file or
directory
rename("$dir/$file","$dir/$file");
bye
bye
----- Original Message -----
From: "bright true" <[Email Removed]>
To: <[Email Removed]>
Cc: <[Email Removed]>
Sent: Wednesday, May 11, 2005 2:55 PM
Subject: Re: rename files
QUOTE |
The following would rename any file in a directory (.anything) into numbers
in the same extention i hope it will be usfull
opendir(DIR,"$dir") or print "$!"; my @content = sort(readdir(DIR)); closedir(DIR); my $no=0; *foreach my* $number (@content){ $no++; $number =~m/S+.(S+)/; rename("$dir/$number","$dir/$no.$1");}
by the way , you forgot to mention the directory you want to rename file in
|
Exactly, Right. Thanks, Bright.
QUOTE |
therefore you got this Error : can not rename file: No such file or directory
rename("$dir/$file","$dir/$file");
bye
bye |
John W. Krahn
May 11 2005, 09:02 PM
[Email Removed] wrote:
Hello,
QUOTE |
I want to rename all the files in a directory with filenames starting 1.jpg to n.jpg. Why this code does not rename the files?
opendir(DIR, "/tmp") or die "can not open dir: $!n"; my @files = grep {/.jpg/ } readdir(DIR); closedir(DIR);
my $count = 1;
foreach (@files){ print "@filesn"; # works: prints all the files my $new = $_; $new =~ s/(.*)(.jpg)/$count$2/;
rename($_, $new) or die "can not rename file: $!n"; print "$_ renamed to $newn"; $count++; }
|
You want something like this:
my $dir = '/tmp';
opendir DIR, $dir or die "Cannot open $dir: $!";
my @files = map "$dir/$_", grep /.jpg$/, readdir DIR;
closedir DIR;
my $count = 1;
for my $file ( @files ) {
print "$filen";
my $new = "$dir/" . $count++ . '.jpg';
if ( -e $new ) {
print "$new already exists.n";
next;
}
rename $file, $new or warn "Cannot rename $file to $new: $!";
print "$file renamed to $newn";
}
__END__
John
--
use Perl;
program
fulfillment
Chris Devers
May 12 2005, 10:21 AM
On Thu, 12 May 2005, Rajarshi Das wrote:
QUOTE |
I am running a test which uses PVA_abbr_map and fails while checking the property EastAsianWidth:A. Is it possible (the pl file says not allowed) to manually modify PVA.pl (the order of properties in PVA_abbr_map) and get perl -d to run according to the new order ?
|
Who knows?
What is PVA.pl?
Did you write it?
If not, where did it come from?
There's not nearly enough background information in your question to
form a reasonable response, asidde from "yes, it's probably possible."
--
Chris Devers
----- Original Message -----
From: "John W. Krahn" <[Email Removed]>
To: "Perl Beginners" <[Email Removed]>
Sent: Wednesday, May 11, 2005 5:02 PM
Subject: Re: rename files
QUOTE |
[Email Removed] wrote: Hi,
Hello,
I want to rename all the files in a directory with filenames starting 1.jpg to n.jpg. Why this code does not rename the files?
opendir(DIR, "/tmp") or die "can not open dir: $!n"; my @files = grep {/.jpg/ } readdir(DIR); closedir(DIR);
my $count = 1;
foreach (@files){ print "@filesn"; # works: prints all the files my $new = $_; $new =~ s/(.*)(.jpg)/$count$2/;
rename($_, $new) or die "can not rename file: $!n"; print "$_ renamed to $newn"; $count++; }
You want something like this:
my $dir = '/tmp';
opendir DIR, $dir or die "Cannot open $dir: $!"; my @files = map "$dir/$_", grep /.jpg$/, readdir DIR; closedir DIR;
my $count = 1;
for my $file ( @files ) { print "$filen"; my $new = "$dir/" . $count++ . '.jpg'; if ( -e $new ) { print "$new already exists.n"; next; } rename $file, $new or warn "Cannot rename $file to $new: $!"; print "$file renamed to $newn"; }
__END__
|
Jay, sort implemented. Thank you.
Very nice, John, (as expected from you.)
Thanks.
QUOTE |
John -- use Perl; program fulfillment
-- To unsubscribe, e-mail: [Email Removed] For additional commands, e-mail: [Email Removed] <http://learn.perl.org/> <http://learn.perl.org/first-response
|
Rajarshi Das
May 13 2005, 03:01 AM
PVA.pl (PVA stands for Property Value Aliases) is a runtime file for unicode
which is generated by the
mktables utility using the file lib/unicore/PropValueAliases.txt.
One of the properties in PropValueAliases.txt is EastAsianWidth for which
'A' is a value which stands for 'Ambiguous'.
The file PVA.pl (which is also in lib/unicore) contains a PVA_abbr_map. This
contains a sequence of property aliases ('ea' for EastAsianWidth, 'jt' for
JoiningType and so on) and their corresponding values.
The test that I run uses a hash (%utf8::PVA_abbr_map) and reads each of
these property values in sequence (as it is listed under PVA_abbr_map in
PVA.pl ).
But perl -d <testname> iterates through a couple of property names (and
their values) but exits before the property 'ea' is picked up from
PVA_abbr_map.
I changed the order of propertynames in PVA_abbr_map (in PVA.pl), but perl
-d still continues to follow the original sequence of property names and
exits before 'ea' is used.
Please let me know if some other details are required.
Thanks,
Rajarshi.
QUOTE |
From: Chris Devers <[Email Removed] Reply-To: [Email Removed] To: Rajarshi Das <[Email Removed] CC: [Email Removed] Subject: Re: modify PVA.pl (z/OS and perl-5.8.6) Date: Thu, 12 May 2005 11:21:23 -0400 (EDT)
On Thu, 12 May 2005, Rajarshi Das wrote:
I am running a test which uses PVA_abbr_map and fails while checking the property EastAsianWidth:A. Is it possible (the pl file says not allowed) to manually modify PVA.pl (the order of properties in PVA_abbr_map) and get perl -d to run according to the new order ?
Who knows?
What is PVA.pl?
Did you write it?
If not, where did it come from?
There's not nearly enough background information in your question to form a reasonable response, asidde from "yes, it's probably possible."
-- Chris Devers
|
_________________________________________________________________
Kareena or Rani? Saif or SRK?
http://server1.msn.co.in/sp05/iifa/ Rock your
vote now at IIFA.
Zentara
May 13 2005, 07:09 PM
On Fri, 13 May 2005 09:02:46 +0200, [Email Removed] wrote:
QUOTE |
Hi,
i'm looking for a way to activate the taint mode by defaut on my mashine, with out doing the !#/usr/bin/perl -T in each script!
Somebody has an idea?
How about in your .bashrc (or whatever you have) set a PERL5OPT |
export PERL5OPT=-T
To affect everyone, put it in /etc/profile (or something similar)
depending on your system.
--
I'm not really a human, but I play one on earth.
http://zentara.net/japh.html
Gayatri
May 16 2005, 09:20 AM
Dear Friends,
I am facing one problem please let me know if anybody knows the solution.
The problem is as follows....
use IO::Select;
use IO::Socket;
The variable $sock will be handling my socket id for TCP, AF_INET/PF_INET
family and the code is as shown bellow..........
Listen ($sock, 5); #listens on this socket
$sel = new IO::Select( $sock );
while(@ready = $sel->can_read) {
foreach $fh (@ready) {
if($fh == $lsn) {
# Create a new socket
$new = $lsn->accept;
$sel->add($new);
}
else {
# Process socket
# Maybe we have finished with the socket
$sel->remove($fh);
$fh->close;
}
}
}
even if there is event(connection/read/write) to be accepted, select returns
empty set most of the times.. even though other(client) is initiating
connection.
If anyone has come across such problem please let me know the solution.
Thanks and Regards,
Gayatri
***************************NOTE*********************************************
**
Deccanet Designs Ltd is now Flextronics Design Ltd, India
****************************************************************************
**
*************************DISCLAIMER*****************************************
**
This e-mail and any attachment is for authorised use by the intended
recipient(s) only. It may contain proprietary material, confidential
information and/or be subject to legal privilege of Flextronics Design Ltd.
If you have received this message in error, please notify the originator
immediately. If you are not the intended recipient, you are notified that
you are strictly prohibited from retaining, using, copying, altering or
disclosing the contents of this message.
****************************************************************************
**
***************************NOTE***********************************************
Deccanet Designs Ltd is now Flextronics Design Ltd, India
******************************************************************************
*************************DISCLAIMER*******************************************
This e-mail and any attachment is for authorised use by the intended
recipient(s) only. It may contain proprietary material, confidential
information and/or be subject to legal privilege of Flextronics Design Ltd.
If you have received this message in error, please notify the originator
immediately. If you are not the intended recipient, you are notified that
you are strictly prohibited from retaining, using, copying, altering or
disclosing the contents of this message.
******************************************************************************
Zentara
May 17 2005, 09:27 AM
On Mon, 16 May 2005 15:38:29 +0530, [Email Removed] (Gayatri)
wrote:
QUOTE |
The problem is as follows....
use IO::Select; use IO::Socket;
The variable $sock will be handling my socket id for TCP, AF_INET/PF_INET family and the code is as shown bellow.......... Listen ($sock, 5); #listens on this socket
$sel = new IO::Select( $sock );
while(@ready = $sel->can_read) { foreach $fh (@ready) { if($fh == $lsn) { # Create a new socket $new = $lsn->accept; $sel->add($new); } else { # Process socket
# Maybe we have finished with the socket $sel->remove($fh); $fh->close; } } }
even if there is event(connection/read/write) to be accepted, select returns empty set most of the times.. even though other(client) is initiating connection. If anyone has come across such problem please let me know the solution.
|
It's really exasperating, when someone dosn't show a full working
snippet, then asks why their code dosn't work. Always show a working
minimal example. Anyways, here is a minimal example that works, but
dosn't have good error checking.
#!/usr/bin/perl
use strict;
use IO::Socket;
use IO::Select;
my $listen = IO::Socket::INET->new(
Proto => 'tcp',
LocalPort => 9192,
Listen => 5,
Reuse => 1) or die $!;
my $select = IO::Select->new($listen);
my @ready;
while(@ready = $select->can_read) {
my $socket;
for $socket (@ready) {
if($socket == $listen) {
my $new = $listen->accept;
$select->add($new);
print $new->fileno . ": connectedn";
} else {
my $line="";
$socket->recv($line,80);
if($line eq "") {
print $socket->fileno . ": disconnectedn";
$select->remove($socket);
$socket->close;
};
print "$linen";
my $socket;
for $socket ($select->handles) {
next if($socket==$listen);
$socket->send($line) or do {
print $socket->fileno . ": disconnectedn";
$select->remove($socket);
$socket->close;
};
}
}
}
}
__END__
--
I'm not really a human, but I play one on earth.
http://zentara.net/japh.html
Philip M. Gollucci
May 17 2005, 06:33 PM
David Gilden wrote:
QUOTE |
Hello,
In the following I was thinking it would just print out: "Hello"
#!/usr/bin/perl -w
$S = "Hello, Perl!";
($R) = grep {/w+/} $S;
print "$Rn";
I am trying for some sort of inline filtering so I can do the following:
#!/usr/bin/perl -w use CGI qw/:standard/; use strict;
my $page = grep {/w{1,50}/i} param('page'); # only allow $page to contain 1-50 of [a-z0-9_] ....snip....
Is this even possible?
Dave Gilden (kora musician / audiophile / webmaster @ www.coraconnection.com / Ft. Worth, TX, USA)
Grep works on arrays. |
perldoc -f grep
you just want a regex
($R) = grep {/w+/} $S;
=>
$s =~ /(Hello)/;
$r = $1;
--
END
------------------------------------------------------
Philip M. Gollucci ([Email Removed])
Consultant /
http://p6m7g8.net/Resume/resume.shtmlSenior Developer / Liquidity Services, Inc.
http://www.liquidityservicesinc.com
John W. Krahn
May 17 2005, 07:41 PM
David Gilden wrote:
Hello,
QUOTE |
In the following I was thinking it would just print out: "Hello"
#!/usr/bin/perl -w
$S = "Hello, Perl!";
($R) = grep {/w+/} $S;
|
grep() filters lists so if an element of the list on the right contains w+ it
will be passed through to the left but other elements will be filtered out.
Since you are dealing with scalars you want something like:
my ( $R ) = $S =~ /(w+)/;
Or:
my $R;
$R = $1 if $S =~ /(w+)/;
Or:
$S =~ /(w+)/ and my $R = $1;
QUOTE |
print "$Rn";
I am trying for some sort of inline filtering so I can do the following:
#!/usr/bin/perl -w use CGI qw/:standard/; use strict;
my $page = grep {/w{1,50}/i} param('page'); # only allow $page to contain 1-50 of [a-z0-9_]
|
my ( $page ) = param( 'page' ) =~ /(w{1,50})/;
John
--
use Perl;
program
fulfillment
John W. Krahn
May 18 2005, 05:16 AM
[Email Removed] wrote:
Hello,
QUOTE |
I am trying to learn perl. I am using perl afs module to administer our afs cell. my problem is, the attached script is forking a new process and is not releasing the memory as iam new to programming I am pretty sure i am doing some simple mistake I would be really thankfull if one of the expert can have a look at my script.
|
The only place in your code that forks is this line:
QUOTE |
my @list = `/bin/cat /home/bobby/scripts/duplicate/test`; foreach ( @list )
|
And you can code that without forking like this:
my $file = '/home/bobby/scripts/duplicate/test';
open FILE, $file or die "Cannot open $file: $!";
my @list = <FILE>;
foreach ( @list )
If your program is running out of memory then you should write that like this:
my $file = '/home/bobby/scripts/duplicate/test';
open FILE, $file or die "Cannot open $file: $!";
while ( <FILE> )
See:
perldoc -q "How can I make my Perl program take less memory"
Also note the section "Avoid unnecessary quotes and stringification".
If you want to learn more about perl's memory usage read the section
"Debugging Perl memory usage" in this document:
perldoc perldebguts
Also, one more comment (although I could make more :-).
QUOTE |
my $afspath = "/afs/.ec.auckland.ac.nz/users/".(split //)[0]."/".(split //)[1]."/$entry";
|
You are using split() to do something that you could do more efficiently with
substr() or unpack():
my $afspath =
'/afs/.ec.auckland.ac.nz/users/'.substr($entry,0,1).'/'.substr($entry,1,1)."/$entry";
John
--
use Perl;
program
fulfillment
Alok Bhatt
May 20 2005, 03:06 AM
Hi All,
I think I found the answer (checking at previous
posts), I think I am going to use
Spreadsheet::WriteExcel.
Thanks,
Alok
--- Alok Bhatt <[Email Removed]> wrote:
QUOTE |
Hi All,
I am writing a script (needless to mention that it is in perl :)), that would read an excel file and save a copy of one of the sheet as another excel file and do processing on it. (Adding formats..etc). Can u please tell me which would be the best module to handle this. I have searched the CPAN and there were lots of modules related to writing to excel file. Please let me know to proceed...
Thanks in advance. Alok
__________________________________ Yahoo! Mail Mobile Take Yahoo! Mail with you! Check email on your mobile phone. http://mobile.yahoo.com/learn/mail
-- To unsubscribe, e-mail: [Email Removed] For additional commands, e-mail: [Email Removed] <http://learn.perl.org/ <http://learn.perl.org/first-response
|
__________________________________
Do you Yahoo!?
Make Yahoo! your home page
http://www.yahoo.com/r/hs
Ing. Branislav Gerzo
May 20 2005, 10:45 AM
Ing. Branislav Gerzo [IBG], on Friday, May 20, 2005 at 09:24 (+0200)
thinks about:
IBG> I'd like to create over 10.000 *.lnk files. I didn't find any module
IBG> for this, could someone help me ? (it could be also commandline
IBG> utility ofcourse).
IBG> Also anyone knows, if it is possible to create *.lnk files relative to
IBG> original file? ("../../abc/orig.exe")
ok, I'd like to someone save some hours, so, here is my knowledge:
- you can create shortcut using perl with
http://search.cpan.org/src/JDB/libwin32-0....docs/index.html- you cannot create shortcut with relative path to original like in
html ("../temp/orig.exe")
--
How do you protect mail on web? I use
http://www.2pu.net[BORE: One who, upon being asked how they are, tells you.]
Wijaya Edward
May 23 2005, 03:24 AM
Hi,
Of course! This is the example of a script with recursive call that produces a list of the directory paths and filenames of all ".htm" and ".shtm" files contained within the subdirectory assigned to the $base variable.
__BEGIN__
#!/usr/local/bin/perl
$base = "/home/users/myspace/html/";
$delim = "/";
proc_files($base);
proc_dirs($base); # Prime the recursive call
print @out;
exit(0);
sub proc_files ($)
{
my $subdir = shift; # Called iteratively by proc_dirs
my @files;
opendir(DIR,$subdir);
@files = grep{-f $subdir.$_;/.html$/;} readdir(DIR); # HTML files
closedir(DIR);
push(@out,"$subdir$_n"); # stack result
}
sub proc_dirs ($)
{
my $path = shift; # Called by itself recursively
my @subdirs;
opendir(DIR,$path);
@subdirs = grep {-d $path.$_; !/^./} readdir(DIR); # subdirectories
closedir(DIR);
foreach (@subdirs) { # Process subdirectory files
push(@out,$path.$_.$delim."n");
proc_files($path.$_.$delim);
proc_dirs("$path$_$delim"); # RECURSIVE CALL
}
}
__END__
--
Regards,
Edward WIJAYA
SINGAPORE
John Doe
May 23 2005, 03:43 AM
Am Montag, 23. Mai 2005 05.54 schrieb bingfeng zhao:
QUOTE |
Hi, everyone, I want know whether perl support recursive sub routine call? [..] |
Hi,
It does:
perl -le'
use warnings; use strict;
sub recursive {
my $cnt=shift;
print "recursion level $cnt";
recursive(++$cnt) if $cnt<10;
}
recursive(0);
'
recursion level 0
recursion level 1
recursion level 2
recursion level 3
recursion level 4
recursion level 5
recursion level 6
recursion level 7
recursion level 8
recursion level 9
recursion level 10
joe
Wijaya Edward
May 23 2005, 03:54 AM
That's very clever John,
I'm wondering why ($cnt++) won't work instead of this
QUOTE |
recursive(++$cnt) if $cnt<10; I tested it, it gave endless recursion. |
And what's the meaning of "0" here?
Why didn't you pass "1" as for recursive(1),
which is more sensible to me? Which also works.
--
Regards,
Edward WIJAYA
SINGAPORE
John Doe
May 23 2005, 04:15 AM
Am Montag, 23. Mai 2005 06.54 schrieb Wijaya Edward:
QUOTE |
That's very clever John, I'm wondering why ($cnt++) won't work instead of this
recursive(++$cnt) if $cnt<10;
I tested it, it gave endless recursion.
|
Yes, spontaneosly I used $cnt++ first, too :-)
++$cnt is called "pre increment" - in contrast to $cnt++ ("post increment") -
and means that $cnt is incremented _before_ the incremented value is used.
So,
recursive(++$cnt);
first increments $cnt and then passes it to recursive().
recursive($cnt++);
always passes the same value to recursive() and increments it afterwards (but
this incremented value is never used).
see (from cmd line)
perldoc perlop
QUOTE |
And what's the meaning of "0" here? Why didn't you pass "1" as for recursive(1), which is more sensible to me? Which also works.
recursive(0); I tend to count levels from 0, not 1, that's all. |
regards, joe
John Doe
May 23 2005, 04:33 AM
Hi
Am Montag, 23. Mai 2005 06.58 schrieb bingfeng zhao:
QUOTE |
oh, thanks a lot.
but if you declare prototype of a sub routine, like sub recursive($$), perl report "main::XXXX() called too early to check prototype at sample.pl line XX." is it important
|
The warning says that the prototype can not be checked, and in so far it's
important (otherwise, you don't need to have a prototype).
QUOTE |
and honw to avoid it?
|
By splitting into a prototype declaration and a sub definition:
perl -le'
use warnings; use strict;
sub recursive($); # declaration
sub recursive($) { # definition
my $cnt=shift;
print "recursion level $cnt";
recursive(++$cnt) if $cnt<10;
}
recursive 0; # () not needed due to prototyping
'
see
perldoc persub
title "Prototypes"
[...]
QUOTE |
|perl -le' |use warnings; use strict; |sub recursive { |my $cnt=shift; |print "recursion level $cnt"; |recursive(++$cnt) if $cnt<10; |} |recursive(0); |' [...] |
regards, joe
John Doe
May 23 2005, 05:47 AM
Hi
Am Montag, 23. Mai 2005 07.24 schrieb bingfeng zhao:
QUOTE |
I'm sorry I may misled by the question. the real qurstion I met is not recursicve but another one involve recursive.
|
I don't understand what you mean here.
QUOTE |
In the sub, I open a file and then call the same sub recursively. Of cource, the recursive call will open another file also. when the flow return from recursive call, the file handle opened before recursiave call closed, so I cannot go on.
|
I think this behaviour is as expected and normal.
You can open and close the file outside of the sub.
If this does not help, please post a code example and indicate what goes
wrong.
QUOTE |
Why perl DOES NOT keep the stack frame?
|
???
[...]
regards, joe
Xavier Noria
May 23 2005, 05:57 AM
On May 23, 2005, at 7:24, bingfeng zhao wrote:
QUOTE |
I'm sorry I may misled by the question. the real qurstion I met is not recursicve but another one involve recursive.
In the sub, I open a file and then call the same sub recursively. Of cource, the recursive call will open another file also. when the flow return from recursive call, the file handle opened before recursiave call closed, so I cannot go on. Why perl DOES NOT keep the stack frame?
|
My guess is that your recursive sub follows this schema:
# schematic
sub foo() {
open FH, $filename;
foo() unless $stop_condition;
close FH;
}
If that's the case the problem is that filehandles are globals, so
each call to foo() uses the same FH.
There are two ways to fix this, the classic fix is to use local():
sub foo() {
local *FH;
open FH, $filename;
foo() unless $stop_condition;
close FH;
}
And the modern fix is to use a lexical instead of a filehandle:
sub foo() {
open my $fh, $filename;
foo() unless $stop_condition;
close $fh;
}
-- fxn
John Doe
May 23 2005, 06:53 AM
Am Montag, 23. Mai 2005 08.57 schrieb Xavier Noria:
QUOTE |
On May 23, 2005, at 7:24, bingfeng zhao wrote: I'm sorry I may misled by the question. the real qurstion I met is not recursicve but another one involve recursive.
In the sub, I open a file and then call the same sub recursively. Of cource, the recursive call will open another file also. when the flow return from recursive call, the file handle opened before recursiave call closed, so I cannot go on. Why perl DOES NOT keep the stack frame?
My guess is that your recursive sub follows this schema:
# schematic sub foo() { open FH, $filename; foo() unless $stop_condition; close FH; }
If that's the case the problem is that filehandles are globals, so each call to foo() uses the same FH.
There are two ways to fix this, the classic fix is to use local():
sub foo() { local *FH; open FH, $filename; foo() unless $stop_condition; close FH; }
And the modern fix is to use a lexical instead of a filehandle:
sub foo() { open my $fh, $filename; foo() unless $stop_condition; close $fh; }
|
Hi
Is there a specific reason to repeatedly open and close the same file due to
recursive implementation of an algorithm?
regards, joe
Xavier Noria
May 23 2005, 07:06 AM
On May 23, 2005, at 9:53, John Doe wrote:
QUOTE |
My guess is that your recursive sub follows this schema:
# schematic sub foo() { open FH, $filename; foo() unless $stop_condition; close FH; }
Is there a specific reason to repeatedly open and close the same file due to recursive implementation of an algorithm?
|
That's a schema, where the point is that FH is global (point that the
OP recognised in his code). The variable $filename is just there to
put something, the same as $stop_condition. In a real sub maybe
$filename will be a lexical that evals to a different filename per
call, or maybe not, from a formal point of view I don't care.
-- fxn
Offer Kaye
May 25 2005, 06:03 AM
On 5/24/05, Guohong Hu wrote:
QUOTE |
Hi, I am reading a text file (XML) and for each chunk of the file content, I run a subroutine (sub1) to analyze it. A problem I met is after a certain point of the input file (for example, after chunk #100), the sub1 suddenly gets significantly slower.
It seems not a memory problem, because in sub1 I only do 1) read but not modify some global hashes and arrays 2) read the file chunk content, and use some private variables to analyze it, then print out the results. So sub1 is not loading anything into the memory after exit.
|
You're asking a very general question. Without access to some code and
data that causes the problem, there is no way anyone can give you
specific suggestions. The problem could be in your code, the modules
you use, or simply the interaction of the code and specific data you
are reading (e.g. some feature of the data after chunk #100 that
causes the slowdown).
For one thing, you say "the sub1 suddenly gets significantly slower".
How do you know this?
Have you run Devel::DProf or some other benchmarking or profiling code?
Try to use Devel::ebug or the Perl debugger to help you pin-point the
problem. Write a test-case with minimal code and data that shows the
problem, and post that to this list. Then maybe someone can help :)
HTH,
--
Offer Kaye
Offer Kaye
May 25 2005, 06:05 AM
Oops- replied to wrong list :) Please ignore...
--
Offer Kaye
Tielman Koekemoer \
May 25 2005, 07:32 AM
Thanks for the help. So I cannot use an array or hash in angle
brackets as file handle. I have a variable amount of files which I'd
like opened and the contents shuffled. What would be the best way to
do this as my next idea also did not work?
_BEGIN_
@files=`ls /app2/koekemtn/scripts/dbstats/test`;
$num =1;
foreach $line ( @files ) {
chomp $line;
open ( $line , "$line") || die "Cannot open $files[0]n";
$file$num = $line; # Problem assignment!
}
_END_
TIA
Ing. Branislav Gerzo
May 25 2005, 07:46 AM
Tielman Koekemoer (TNE) [TK], on Wednesday, May 25, 2005 at 10:32
(+0200) typed the following:
TK> $file$num = $line; # Problem assignment!
use hash instead scalar variables; $file{$num} is OK.
First you have to ofcourse declare it: my %file = ();
--
How do you protect mail on web? I use
http://www.2pu.net[Only a fool fights in a burning house--Kank the Klingon]
J aperlh
May 25 2005, 08:04 AM
Hi, Guys,
I want to write a perl script to call several functions in a COM
component on MSWin32.
What is the best way to do this?
Thanks a lot.
Xavier Noria
May 25 2005, 08:07 AM
On May 25, 2005, at 10:32, Tielman Koekemoer ((TNE)) wrote:
QUOTE |
Thanks for the help. So I cannot use an array or hash in angle brackets as file handle. I have a variable amount of files which I'd like opened and the contents shuffled. What would be the best way to do this as my next idea also did not work?
_BEGIN_
@files=`ls /app2/koekemtn/scripts/dbstats/test`; $num =1;
foreach $line ( @files ) {
chomp $line; open ( $line , "$line") || die "Cannot open $files[0]n"; $file$num = $line; # Problem assignment! }
|
If you need the filehandles in an array, then use an array and read
from them using readline(), which accepts any expression:
while (my $line = readline $files[$n]) {
// ...
}
See perldoc -f readline for details.
-- fxn
Thomas Btzler
May 25 2005, 08:27 AM
Hi,
Tielman Koekemoer (TNE) <[Email Removed]> asked:
QUOTE |
Thanks for the help. So I cannot use an array or hash in angle brackets as file handle. I have a variable amount of files which I'd like opened and the contents shuffled. What would be the best way to do this as my next idea also did not work?
|
You'll have to use the OO interface to the I/O stuff.
Here's a small example:
#!/usr/bin/perl -w
use strict;
use IO::File;
my @infh;
foreach my $file ( @ARGV ){
if( my $fh = new IO::File $file ){
push @infh, $fh;
} else {
die "Failed to open input file '$file': $!";
}
}
while( @infh ){
foreach my $fh (@infh){
print $fh->getline();
if( $fh->eof() ){
$fh->close();
$fh = undef;
}
}
@infh = grep { defined $_ } @infh;
}
__END__
HTH,
Thomas
Jeff 'japhy' Pinyan
May 25 2005, 08:33 AM
On May 25, Tielman Koekemoer (TNE) said:
QUOTE |
Thanks for the help. So I cannot use an array or hash in angle brackets as file handle. I have a variable amount of files which I'd like opened and the contents shuffled. What would be the best way to do this as my next idea also did not work?
@files=`ls /app2/koekemtn/scripts/dbstats/test`;
|
First of all, you need to chomp() this array, since all its elements end
in newlines. Second of all, you should not be using `ls ...` for this,
because Perl offers you opendir(), readdir(), and closedir(). Or, if
you're a little lazy, glob().
my $dbpath = '/app2/koekemtn/scripts/dbstats/test';
opendir my($dbdir), $dbpath or die "can't readdir $dbpath: $!";
my @dbfiles = readdir $dbdir;
closedir $dbdir;
Now you have all the file *names* in an array. Since they're in another
directory entirely, you'll have to put their path in front of them:
# use this line instead of the readdir() line above
my @dbfiles = map "$dbpath/$_", readdir $dbdir;
Finally, you probably only want files, not directories. Your `ls ...`
code didn't discriminate, but readdir() returns ALL entries, including '.'
and '..', so we do have to be specific:
# use this
my @dbfiles = grep -f, map "$dbpath/$_", readdir $dbdir;
(At this point, if you don't understand anything I've coded, I'd suggest
you look at 'perldoc -f opendir', 'perldoc -f readdir', 'perldoc -f
closedir', 'perldoc -f map', 'perldoc -f grep', and 'perldoc -f -X'. Or
you could ask more here, but it would help those of us that answer
questions a great deal if you read the docs first.)
QUOTE |
$num =1;
foreach $line ( @files ) { chomp $line;
|
Eh, you chomp() now. But I wouldn't have used `ls ...`.
QUOTE |
open ( $line , "$line") || die "Cannot open $files[0]n";
|
You've got $files[0] there, but you're not always using $files[0], you're
using $line. You also didn't include $! in your error message, which
would tell you WHY it couldn't open the file.
QUOTE |
$file$num = $line; # Problem assignment!
|
Whenever you see that you have a group of variables called $this_1,
$this_2, $this_3, etc., it's a sign that you should be using an array. In
fact, you already HAVE the array (@files) since you're using the elements
of the array both as paths to files AND as the filehandles themselves.
It's a little unorthodox, but it's not a crime. I wouldn't do it, though,
I'd create filehandles:
my @fh;
for (@dbfiles) {
open my($f), "< $_" or die "can't read $_: $!";
push @fh, $f;
}
Now for every element in @dbfiles, the matching element in @fh is a
filehandle for it.
--
Jeff "japhy" Pinyan % How can we ever be the sold short or
RPI Acacia Brother #734 % the cheated, we who for every service
http://japhy.perlmonk.org/ % have long ago been overpaid?
http://www.perlmonks.org/ % -- Meister Eckhart
Paul Johnson
May 25 2005, 09:39 AM
On Wed, May 25, 2005 at 10:27:11AM +0000, Vineet Pande wrote:
QUOTE |
Hi: I don't understand the way perl 'advances' the variables along the range a-z, A-Z, and 0-9. For example from a book
$a = "A9"; print ++$a, "n";
gives B0 as expected,
but, $a = "Zz"; print ++$a, "n";
gives AAa.
Why?? why not Aa only!
|
Because you get a carry, similar to the way 99 + 1 = 100, not 00.
QUOTE |
also $a = "9z"; print ++$a, "n";
gives 10. and why not 0a?
|
Because "9z" doesn't match the criteria for magic auto-increment.
perldoc perlop says:
The auto-increment operator has a little extra builtin magic
to it. If you increment a variable that is numeric, or that
has ever been used in a numeric context, you get a normal
increment. If, however, the variable has been used in only
string contexts since it was set, and has a value that is
not the empty string and matches the pattern
"/^[a-zA-Z]*[0-9]*z/", the increment is done as a string,
preserving each character within its range, with carry:
print ++($foo = '99'); # prints '100'
print ++($foo = 'a0'); # prints 'a1'
print ++($foo = 'Az'); # prints 'Ba'
print ++($foo = 'zz'); # prints 'aaa'
--
Paul Johnson - [Email Removed]
http://www.pjcj.net
Thomas Btzler
May 25 2005, 10:42 AM
Vineet Pande <[Email Removed]> asked:
QUOTE |
I don't understand the way perl 'advances' the variables along the range a-z, A-Z, and 0-9.
|
This is described in the perlop manpage:
[...]
The auto-increment operator has a little extra builtin magic to it. If you
increment a variable that is numeric, or that has ever been used in a
numeric context, you get a normal increment. If, however, the variable has
been used in only string contexts since it was set, and has a value that is
not the empty string and matches the pattern /^[a-zA-Z]*[0-9]*z/, the
increment is done as a string, preserving each character within its range,
with carry:
print ++($foo = '99'); # prints '100'
print ++($foo = 'a0'); # prints 'a1'
print ++($foo = 'Az'); # prints 'Ba'
print ++($foo = 'zz'); # prints 'aaa'
[...]
QUOTE |
For example from a book
$a = "A9"; print ++$a, "n";
gives B0 as expected,
but, $a = "Zz"; print ++$a, "n";
gives AAa.
Why?? why not Aa only!
|
Think about how this works. Perl first look at the 'z' and turns
it into an 'a'. It also knows that it has a carry-over digit, so
it next looks at the 'Z'. This is turned into an 'A', and there
is a carry-over again, so that becomes the leading 'A'.
QUOTE |
also $a = "9z"; print ++$a, "n";
gives 10. and why not 0a?
|
Because "9z" is a number with trailing garbage, which is silently
discarded during transformation to a number. The incrementing of
letters only works for strings that start with letters - see the
quoted text above.
HTH,
Thomas
Dave Gray
May 25 2005, 07:00 PM
QUOTE |
foreach my $file ( @ARGV ){ if( my $fh = new IO::File $file ){
|
# Be explicit[1]
if (my $fh = IO::File->new($file)) {
QUOTE |
push @infh, $fh; } else { die "Failed to open input file '$file': $!"; } }
|
[1] <http://www.perl.com/doc/manual/html/pod/perlobj.html#WARNING>
Jeff 'japhy' Pinyan
May 25 2005, 08:28 PM
On May 26, bingfeng zhao said:
QUOTE |
On RedHat Linux, the perl complain "Inappropriate ioctl for device" when I use the following code to open a file:
my $file = "./abc"; if ( open FN, $file ) { print "Cannot open the file: $!n"; next; }
|
Um, you're printing that message if the file DOES open! You want 'unless'
instead of 'if', or else a 'not' operator in there:
if (not open FN, $file) { ... }
or
unless (open FN, $file) { ... }
The value in $! is unreliable if it hasn't actually been set (as is the
case in your code).
QUOTE |
I modified code and test the FH as following, perl indicate "Bareword "FH" not allowed while "strict subs"". <CODE open FH, $name; if ( not defined FH )
|
You'd need to do *FH instead of FH, but that's really not the right way to
go about doing this. If you wanted to do it based on the filehandle, you
could do:
if (not defined fileno(FH)) { ... }
But why not just write:
open(FH, $file) or do {
warn("can't read $file: $!");
next;
};
That's nicer on the eyes, I think.
QUOTE |
BTW, why a DOS-style perl file cannot run on linux and the bash report ": bad interpreter: No such file or directory"? It will be OK if I save the file as Unix-style and FTP to linux.
|
This is because if you transfer it incorrectly, the first line (the #!
line) is actually '#!/usr/bin/perlrn' instead of '#!/usr/bin/perln'
which means that Unix is looking for the program '/usr/bin/perlr', and
that file doesn't exist.
QUOTE |
Another question is what is the simplest way to replace "rn" with "r" or "n"?
|
I think you'd just want to remove the r's. This is how you remove r's
from a string in Perl:
$string =~ tr/r//d;
Or, on Unix, use the dos2unix utility -- you might already have it.
--
Jeff "japhy" Pinyan % How can we ever be the sold short or
RPI Acacia Brother #734 % the cheated, we who for every service
http://japhy.perlmonk.org/ % have long ago been overpaid?
http://www.perlmonks.org/ % -- Meister Eckhart
John Moon
May 26 2005, 11:57 AM
Subject: search a file
Hello, I'm writing a simple perl program. no CGI.
* I need to make the program list all the files that have an extension of
".v" in the current directory. Do anyone know a function that makes that ?!
Best Regards,
Eliyah
One way ...
@a=glob('*.v');
print join("n",@a), "n";
Manav Mathur
May 26 2005, 12:26 PM
See
perldoc -f glob
and the angle bracket operator in
perldoc perlop
@files = glob("*.v") ;
#or
@files = <*.v> ;
|-----Original Message-----
|From: Eliyah [mailto:[Email Removed]]
|Sent: Thursday, May 26, 2005 3:10 PM
|To: [Email Removed]
|Subject: search a file
|
|
|Hello, I'm writing a simple perl program. no CGI.
|* I need to make the program list all the files that have an
|extension of ".v" in the current directory. Do anyone know a
|function that makes that ?!
|Best Regards,
|Eliyah
|
|--
|To unsubscribe, e-mail: [Email Removed]
|For additional commands, e-mail: [Email Removed]
|<http://learn.perl.org/> <http://learn.perl.org/first-response>
|
|
*********************************************************
Disclaimer:
The contents of this E-mail (including the contents of the enclosure(s) or attachment(s) if any) are privileged and confidential material of MBT and should not be disclosed to, used by or copied in any manner by anyone other than the intended addressee(s). In case you are not the desired addressee, you should delete this message and/or re-direct it to the sender. The views expressed in this E-mail message (including the enclosure(s) or attachment(s) if any) are those of the individual sender, except where the sender expressly, and with authority, states them to be the views of MBT.
This e-mail message including attachment/(s), if any, is believed to be free of any virus. However, it is the responsibility of the recipient to ensure that it is virus free and MBT is not responsible for any loss or damage arising in any way from its use
*********************************************************
Jeff 'japhy' Pinyan
May 26 2005, 11:00 PM
On May 27, bingfeng zhao said:
QUOTE |
To parse a regular text file, I should report the line number of parsed file when error occured. I want to know whether perl provide a shortcut way or magic '$?' indicate this. I must counting myself if not.
|
When reading from a filehandle, the $. variable holds the current line
number.
--
Jeff "japhy" Pinyan % How can we ever be the sold short or
RPI Acacia Brother #734 % the cheated, we who for every service
http://japhy.perlmonk.org/ % have long ago been overpaid?
http://www.perlmonks.org/ % -- Meister Eckhart
Luhao
May 27 2005, 02:48 AM
On Fri, May 27, 2005 at 10:31:40AM +0800, bingfeng zhao wrote:
QUOTE |
To parse a regular text file, I should report the line number of parsed file when error occured. I want to know whether perl provide a shortcut way or magic '$?' indicate this. I must counting myself if not.
Thanks in advance
yes, $. |
see perldoc perlvar
--
To see a world in a grain of sand
and a hevean in a wild flower
Hold infiniter in the palm of your hand
and eternity in an hour
Luke Bakken
May 27 2005, 09:06 PM
QUOTE |
$ cat marc21textfile | uniq > outputfile
|
Where's Randal for a UUOC award?
John Doe
May 27 2005, 09:26 PM
Am Samstag, 28. Mai 2005 00.06 schrieb Bakken, Luke:
QUOTE |
$ cat marc21textfile | uniq > outputfile
Where's Randal for a UUOC award?
|
Ok, for all using perl for everything and not beeing experienced with cmdline
tools as me:
$ uniq marc21textfile outputfile
"Useless Use Of Cat"
(I read the "INPUT" in the man page as "STDIN". Sorry all for that and the
superfluos traffic I produce(d) in this thread. The will to help doesn't
always provide real help.)
Retracting for a while,
joe
John Moon
May 31 2005, 06:34 PM
Subject: DBD::Oracle problems
All,
I am getting the following error while trying to use DBD::Oracle:
DBD::Oracle::st execute failed: ORA-00900: invalid SQL statement (DBD
ERROR: OCIStmtExecute) [for Statement "describe ALL_USERS"] at
../oracleTest.pl line 69.
I have tested the connection manually with sqlplus, and all is good there.
I have also run some select statements with the DBD::Oracle driver that
DID work. So all is good there.
HOWEVER what is wrong with this describe statement and why do I get the
error above???
my $sth = $dbh->prepare(qq{describe ALL_USERS});
$sth->execute;
A WORKING snippet is:
my $sth = $dbh->prepare(qq{select count(USERNAME) from ALL_USERS});
and happens to return 635 as the result as expected.
So I believe that I understand how to use the driver but there is
obviously something about the describe that is different.
I don't think "describe" is an SQL command...
Try " select column_name from ALL_TAB_COLUMNS
where table_name = 'ALL_USERS'"
jwm
John Moon
May 31 2005, 06:41 PM
Subject: RE: :Oracle problems
Subject: DBD::Oracle problems
All,
I am getting the following error while trying to use DBD::Oracle:
DBD::Oracle::st execute failed: ORA-00900: invalid SQL statement (DBD
ERROR: OCIStmtExecute) [for Statement "describe ALL_USERS"] at
../oracleTest.pl line 69.
I have tested the connection manually with sqlplus, and all is good there.
I have also run some select statements with the DBD::Oracle driver that
DID work. So all is good there.
HOWEVER what is wrong with this describe statement and why do I get the
error above???
my $sth = $dbh->prepare(qq{describe ALL_USERS});
$sth->execute;
A WORKING snippet is:
my $sth = $dbh->prepare(qq{select count(USERNAME) from ALL_USERS});
and happens to return 635 as the result as expected.
So I believe that I understand how to use the driver but there is
obviously something about the describe that is different.
I don't think "describe" is an SQL command...
Try " select column_name from ALL_TAB_COLUMNS
where table_name = 'ALL_USERS'"
jwm
Also see the DBI method "column_info"
jwm
Bob Showalter
May 31 2005, 06:54 PM
[Email Removed] wrote:
QUOTE |
All,
I am getting the following error while trying to use DBD::Oracle:
DBD::Oracle::st execute failed: ORA-00900: invalid SQL statement (DBD ERROR: OCIStmtExecute) [for Statement "describe ALL_USERS"] at ./oracleTest.pl line 69.
|
DESCRIBE is a SQL*Plus command. It is not part of the Oracle SQL language.
You need to either query the data dictionary views directly, or use the
statement handle attributes like NAME, PRECISION, TYPE, etc. to get this
information.
Christopher L Hood
May 31 2005, 07:38 PM
Ok that makes more sense, I will look online for a reference of oracle SQL
language, that is NOT sql*plus.
Do you know where I might start, besides google.com, of course I will do
that.
Chris
-----Original Message-----
From: Bob Showalter [mailto:[Email Removed]]
Sent: Tuesday, May 31, 2005 2:55 PM
To: Christopher L. Hood; [Email Removed]
Subject: RE: :Oracle problems
[Email Removed] wrote:
QUOTE |
All,
I am getting the following error while trying to use DBD::Oracle:
DBD::Oracle::st execute failed: ORA-00900: invalid SQL statement (DBD ERROR: OCIStmtExecute) [for Statement "describe ALL_USERS"] at ./oracleTest.pl line 69.
|
DESCRIBE is a SQL*Plus command. It is not part of the Oracle SQL language.
You need to either query the data dictionary views directly, or use the
statement handle attributes like NAME, PRECISION, TYPE, etc. to get this
information.
--
To unsubscribe, e-mail: [Email Removed]
For additional commands, e-mail: [Email Removed]
<http://learn.perl.org/> <http://learn.perl.org/first-response>
Michael Coll-Barth
May 31 2005, 07:55 PM
oracle.com
-----Original Message-----
From: [Email Removed]
[mailto:[Email Removed]]
Sent: Tuesday, May 31, 2005 4:39 PM
To: [Email Removed]; [Email Removed]
Subject: RE: :Oracle problems
Ok that makes more sense, I will look online for a reference of oracle SQL
language, that is NOT sql*plus.
Do you know where I might start, besides google.com, of course I will do
that.
Chris
-----Original Message-----
From: Bob Showalter [mailto:[Email Removed]]
Sent: Tuesday, May 31, 2005 2:55 PM
To: Christopher L. Hood; [Email Removed]
Subject: RE: :Oracle problems
[Email Removed] wrote:
QUOTE |
All,
I am getting the following error while trying to use DBD::Oracle:
DBD::Oracle::st execute failed: ORA-00900: invalid SQL statement (DBD ERROR: OCIStmtExecute) [for Statement "describe ALL_USERS"] at ./oracleTest.pl line 69.
|
DESCRIBE is a SQL*Plus command. It is not part of the Oracle SQL language.
You need to either query the data dictionary views directly, or use the
statement handle attributes like NAME, PRECISION, TYPE, etc. to get this
information.
--
To unsubscribe, e-mail: [Email Removed]
For additional commands, e-mail: [Email Removed]
<http://learn.perl.org/> <http://learn.perl.org/first-response>
--
To unsubscribe, e-mail: [Email Removed]
For additional commands, e-mail: [Email Removed]
<http://learn.perl.org/> <http://learn.perl.org/first-response>
___________________________________________________________________
The information contained in this message and any attachment may be
proprietary, confidential, and privileged or subject to the work
product doctrine and thus protected from disclosure. If the reader
of this message is not the intended recipient, or an employee or
agent responsible for delivering this message to the intended
recipient, you are hereby notified that any dissemination,
distribution or copying of this communication is strictly prohibited.
If you have received this communication in error, please notify me
immediately by replying to this message and deleting it and all
copies and backups thereof. Thank you.