Working with $_ usually makes programming much easier, but more confusing to the uninitiated : Special Variables « Language Basics « Perl






Working with $_ usually makes programming much easier, but more confusing to the uninitiated

   

#In the following example, every statement uses $_ implicitly.

while (<>) {
   for (split) {
       s/m/y/g;
       print;
   }
}

#It breaks the line you type into words, loops over those words, converts all m's to y's, and prints the result like this.

#So how does this code look if you put the $_ default variable back in explicitly? 

while ($_ = <>) {
   for $_ (split / /, $_) {
       $_ =~ s/m/y/g;
       print $_;
   }
}

   
    
    
  








Related examples in the same category

1.Special Literals
2.Splitting up $_
3.Splitting up $_ and creating an unnamed list
4.The list separator is a comma
5.The list separator is the empty string
6.Passing Arguments at the Command Line
7.Special Hashes: The %ENV Hash
8.The %SIG hash sets signal handlers for signals.
9.A program that changes the value of $/.
10.A program that uses the $" (dollar and quotation) variable.
11.A program that uses the $(dollar), variable.
12.A program that uses the $< variable.
13.A program that uses the $\(dollar and slash) variable.
14.A simple program that assigns to $_ using .
15.A simple version of the cat command using $_.
16.ARGV and the Null Filehandle
17.ARGV in Perl represents the command-line arguments.
18.Aliases and Values
19.Alternative names for Perl system variables.
20.Assign elements in @_ to scalar
21.Assign string array to @ARGV by using qw
22.Assign value to @_
23.Build the ARGV array with qw function
24.@_ has runtime scope.
25.A more expanded version for showing how to use the $_
26.Built-in variables: $_
27.Call-by-Reference and the @_ Array
28.Capturing fatal errors
29.Catching the sigINT signal
30.Code the $_ specifically
31.Compare value entered with number with underscore
32.Error message is stored in $!
33.Extracts information from the $] variable.
34.$! is the error number
35.$! stores the error message
36.$" is the separator
37.$# is the default format
38.$(dollar), is the separator
39.$MATCH = $&
40.$SIG{__DIE__}
41.$SIG{__WARN__} = 'IGNORE';
42.$SIG{__WARN__} = sub {die "Warning: $_[0]"};
43.$\ is 'END_OF_OUTPUT'
44.$^ is the format header
45.$^O stores the name of the operating system
46.$^S: is inside eval
47.$^W: Check the '-w switch'
48.$^X: get the Perl execuatable file name
49.$_ for print function
50.$_ stores the user input
51.$~ is the format
52.%INC values
53.File-searching program using $ARGV.
54.Get Computer Name key in the %ENV
55.Get local time from $^T
56.If $_contains needle, the string is printed.
57.Integer signal
58.Lines Remaining on the Page: $-
59.List all command line argument
60.Local builtin var
61.Locate all numbers less than 6
62.Manipuate @_ and return @_
63.Mannually change the $1 variable
64.Match: $&
65.Perl 5 Built-In Variables
66.Perl's modules reside in the directories named in the @INC array, or subdirectories
67.Perl's special arrays
68.Perl's special variables
69.Postmatch $'
70.Prematch: $`
71.Print all command line argument
72.Print the default variable's ($_) value
73.Quick Sum
74.Read and set environment variables?
75.Read lines from supplied filenames
76.Reference element in @_
77.Resetting array base
78.Retrieving the Entire Pattern: $&
79.Saving in the $& special scalar
80.Set the $/ and chomp
81.Special Variables
82.System variables that control how write sends output to a file
83.Test of open and die with $!.
84.The $_ Scalar Variable
85.The @* field
86.The @ISA Array and Calling Methods
87.The Argument Vector @ARGV
88.The Pattern-Matching Operator and $_
89.The Substitution Operator and $_
90.The code executes a line of code you type as long as that line doesn't start with a #
91.The environment associative array: Associative arrays %ENV holds your system's environment variables.
92.The following functions and operators work with the $_ variable by default:
93.The shift operator returns an undefined value if the array has no more elements.
94.To list all .pm files by using the @INC array
95.Use while loop to display all entries in ENV
96.Using $, to set the separator for print command
97.Using $_ (dollar underscore)
98.Using $_ as the array index
99.Using $_ variable with while statement
100.Using %SIG to define our own signal handlers
101.Using @_ directly
102.Using __LINE__ to output line number
103.Using eof and <> together.
104.Using the $. variable.
105.Using the $;(dollar and semicolon) variable.
106.Using the @_ to reference the parameter
107.Using the Default Variable $_
108.Using the diamond operator with @ARGV
109.Using the if statement to check the command line parameters
110.Using the special Perl variable $! in the message passed to die.
111.Using tr to convert all file names passed in to uppercase
112.Verify the total number of the command line parameter
113.You display the current line of execution in a Perl script by referring to it with the __LINE__ token.
114.You display the name of the current Perl package with __PACKAGE__.
115.You display the name of the current file with the __FILE__ token
116.foreach (@_)
117.foreach loop and $_
118.or die $!
119.or die $^E;
120.print "Hello, $ENV{USER}!\n";
121.print $INC{'English.pm'};
122.print $]; (Perl version number)
123.print out all pm library location
124.prints out each element of @ARGV separately
125.shift: defaults to shifting @ARGV
126.time - $^T
127.undef $/;