09-04-2012
Lexical and global refer to where the variables are stored. Global variables(symbols are another name for them) are stored in a symbol table which is maintained in memory accesible by all of the code, including a lot of packages you cannot see. Lexical variables are not in any table. Lexical variables can only refer to a scalar, an array, or a hash. Global variables can reference other things like external procedures.
Just because you write a program with "my $var" near the top does not promote the variable to being stored in a symbol table.
Perl is not C, although knowing C makes learning perl a lot easier.
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Can someone give me "the lecture" on why you shouldn't make all your varables global when programming in perl. I have been doing this but I have heard that it is not a good practice. (3 Replies)
Discussion started by: reggiej
3 Replies
2. Shell Programming and Scripting
I have the following script:
#!/usr/bin/perl -w
@files = <*.csv>;
foreach $file (@files) {
open(FH, $file);
my @dt = split(/_|.csv/, $file);
while (<FH>) {
chomp;
print $dt . $dt . ",$_\n";
}
close(FH);
}
This script reads in all csv files in the current directory... (2 Replies)
Discussion started by: figaro
2 Replies
3. Shell Programming and Scripting
Hi.
I have three arrays.
@a=('AB','CD','EF');
@b=('AB,'DG',HK');
@c=('DD','TT','MM');
I want to compare the elements of the first two array and if they match then so some substition.
I tried using the if statement using the scalar value of the array but its not giving me any output.
... (7 Replies)
Discussion started by: kamitsin
7 Replies
4. Shell Programming and Scripting
Hi I'm new to Perl and the forum. I've done a quick search on my question but I didn't see an answer. I sincerely apologize if this question has been asked.
I'm trying to have my perl scrip recognize system variable $USER such that:
my $test_path = "/temp/\$USER/g03/Gau-11097.EIn";
open... (2 Replies)
Discussion started by: jhbamboo
2 Replies
5. Shell Programming and Scripting
I'm new to perl and have to create these files for my job. I have a script that I can run that will create the file, but I have to manually pass the variables to it. It is dumb and it takes a lot of time. I want to be able to pass the existing perl script a set of variables (the same variables... (4 Replies)
Discussion started by: smartin114
4 Replies
6. Shell Programming and Scripting
I'm trying to load a set of variables as defined by a local configuration file. Not too sure what I'm missing so I'll just post it as a whole.
blub.pl
#!/usr/bin/perl
use strict;
use warnings;
my $config_file="blub.config";
Config_Loader();
sub Config_Loader {... (8 Replies)
Discussion started by: adelsin
8 Replies
7. Shell Programming and Scripting
Good morning!!
Im trying to practice withe Perl and sorting variables is not going good at all!
#!/usr/bin/perl
$username = $ENV {'LOGNAME'};
print "Hello, $username\n";
I want to add sort and 'mail' and 'home'. This below is what I have came up with,but of course its not working.
... (5 Replies)
Discussion started by: bigben1220
5 Replies
8. Shell Programming and Scripting
sdcprd@dotstoas110:$ echo $F2
1327332411
this works
----------
sdcprd@dotstoas110:$ perl -MPOSIX -le 'print strftime ("%m%d%y",localtime (1327332411))'
012312 <<<< correct date
this doesnt
-----------
sdcprd@dotstoas110:$ perl -MPOSIX -le 'print strftime ("%m%d%y",localtime... (10 Replies)
Discussion started by: aliyesami
10 Replies
9. UNIX for Dummies Questions & Answers
hi all,
i need a help for the following query.
Thanks in advance for your valuable time.
i have a main.pl file which has a global variable declared as below.
our myVar=0;
call first.pl script from the main.pl script.
print the value of myVar (the value is still 0 and not 10.)
i have a... (1 Reply)
Discussion started by: hemalathak10
1 Replies
10. Programming
I have reviewed many examples on-line about running another process (either PERL or shell command or a program), but do not find any usefull for my needs way. (Reviewed and not useful the system(), 'back ticks', exec() and open())
I would like to run another PERL-script from first one, not... (1 Reply)
Discussion started by: alex_5161
1 Replies
LEARN ABOUT DEBIAN
readonly::xs
XS(3pm) User Contributed Perl Documentation XS(3pm)
NAME
Readonly::XS - Companion module for Readonly.pm, to speed up read-only scalar variables.
VERSION
This document describes version 1.04 of Readonly::XS, December 6, 2005.
SYNOPSIS
Install this module, but do not use it.
DESCRIPTION
The Readonly module (q.v.) is an effective way to create non-modifiable variables. However, it's relatively slow.
The reason it's slow is that is implements the read-only-ness of variables via tied objects. This mechanism is inherently slow. Perl
simply has to do a lot of work under the hood to make tied variables work.
This module corrects the speed problem, at least with respect to scalar variables. When Readonly::XS is installed, Readonly uses it to
access the internals of scalar variables. Instead of creating a scalar variable object and tying it, Readonly simply flips the SvREADONLY
bit in the scalar's FLAGS structure.
Readonly arrays and hashes are not sped up by this, since the SvREADONLY flag only works for scalars. Arrays and hashes always use the tie
interface.
Why implement this as a separate module? Because not everyone can use XS. Not everyone has a C compiler. Also, installations with a
statically-linked perl may not want to recompile their perl binary just for this module. Rather than render Readonly.pm useless for
these people, the XS portion was put into a separate module.
Programs that you write do not need to know whether Readonly::XS is installed or not. They should just "use Readonly" and let Readonly
worry about whether or not it can use XS. If the Readonly::XS is present, Readonly will be faster. If not, it won't. Either way, it will
still work, and your code will not have to change.
Your program can check whether Readonly.pm is using XS or not by examining the $Readonly::XSokay variable. It will be true if the XS
module was found and is being used. Please do not change this variable.
EXPORTS
None.
SEE ALSO
Readonly.pm
AUTHOR
/ COPYRIGHT
Eric Roode, roode@cpan.org
Copyright (c) 2003-2005 by Eric J. Roode. All Rights Reserved. This module is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
To avoid my spam filter, please include "Perl", "module", or this module's name in the message's subject line, and/or GPG-sign your
message.
perl v5.14.2 2011-11-15 XS(3pm)