Sponsored Content
Full Discussion: Perl printing error
Top Forums Shell Programming and Scripting Perl printing error Post 302286812 by KevinADC on Thursday 12th of February 2009 02:33:12 AM
Old 02-12-2009
You can't have two else conditions in perl. You can have:

if/elsif/else

with as many 'elsif' conditions as needed and the 'else' on the end is optional
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

printing an empty line in a file (perl)

I know this must be really easy, but i can't get it to work I've got a perl script, with a file. I want to print an empty line, and the following doesn't seem to work: print nameoffile "\n" thanks for your help!! (3 Replies)
Discussion started by: kfad
3 Replies

2. UNIX for Dummies Questions & Answers

Perl, printing a string into columns

How can I use Perl to a take a string of 10 characters and print the last five characters of the string in columns 1-5 and the first five in columns 6-10? Result: 0123456789 5 0 6 1 7 2 8 3 9 4 (5 Replies)
Discussion started by: doubleminus
5 Replies

3. Shell Programming and Scripting

Need help in printing a sql query in perl

Hi All, I have the following sql query select abcd from udbadm.log where xyz='1'. I have 16k queries similar to this with different values for xyz. I want to print the values of 'abcd' for each row. I have the following perl code, but not sure how i can print that particular... (1 Reply)
Discussion started by: userscript
1 Replies

4. Shell Programming and Scripting

[Perl] Printing - Scalars

Hey Guys, I have some weird problem with printing scalars ... When I'm executing script both are printing in terminal ... But only one is printed to the file ? I don't know whats going on .. :) Btw .. I'm noobie :) took me lots of time to put this simple script together :) Thank you... (3 Replies)
Discussion started by: NDxiak
3 Replies

5. Shell Programming and Scripting

PERL - printing a hash of hashes to screen

Hi there I have a hash of hashes made up of the following data bge0|100|half|10.36.100.21 bge1|1000|full|10.36.100.22 bge2|1000|full|10.36.100.23 which when i turn into a hash, would look like this inside the system bge0 -> nic_speed -> 100 nic_duplex -> half ... (6 Replies)
Discussion started by: hcclnoodles
6 Replies

6. Shell Programming and Scripting

Printing between 2 matches with Perl

Can we please modify this perl one-liner to print lines between pattern1 and pattern2 in a file? Currently it prints lines till pattern2. (4 Replies)
Discussion started by: anand_bh
4 Replies

7. Emergency UNIX and Linux Support

Perl - Retrieving and Printing Security Token

My script below is supposed to log in to my vB account on any vB forum I'm registered on and retrieve + print my security token. However it seems to be hit and miss. The logging in works perfectly just will not retrieve and print the security token for every forum I log in to. Code Below: ... (3 Replies)
Discussion started by: AndrewTwain
3 Replies

8. Shell Programming and Scripting

Perl: selective printing of lines

Hi, I have a file with lines like this. 2 7 18 ggcgt anna 2 7 18 hhchc sam 3 7 18 hhdjcc ross 4 7 18 hhcjd jenny 0 8 21 jjdhs sam 3 8 21 kkok bush 2 9 24 kosss BrenhamIf the values of the second column are equal, print only those lines with the least first column value. So in... (5 Replies)
Discussion started by: polsum
5 Replies

9. Shell Programming and Scripting

help with perl database printing

Hey guys i am using perl and trying to pull a list of books from a database and then populate the list in a separate TT2 file. When the list is generated there should be 39 book names. When I do the foreach statement in my tt2 below, the first statement gives me 39 Array(random number) and the... (1 Reply)
Discussion started by: Joey12
1 Replies

10. Shell Programming and Scripting

Need help in Perl Script for printing next line

I got multiple of documents in which i have to extract a line coming after a ID..The scenario is Customer ID: none VT : 002/89 Customer ID: Yes VT: 001/89 Customer ID: none VT: 006/85 Customer ID: Yes VT: 003/56 I have to extract the id which is coming after YES..The output... (7 Replies)
Discussion started by: rajkrishna89
7 Replies
Syntax::Keyword::Gather(3pm)				User Contributed Perl Documentation			      Syntax::Keyword::Gather(3pm)

NAME
Syntax::Keyword::Gather - Provide a gather keyword VERSION
version 1.001000 SYNOPSIS
use Syntax::Keyword::Gather; my @list = gather { # Try to extract odd numbers and odd number names... for (@data) { if (/(one|three|five|seven|nine)$/) { take qq{'$_'} } elsif (/^d+$/ && $_ %2) { take $_ } } # But use the default set if there aren't any of either... take @defaults unless gathered; } or to use the stuff that Sub::Exporter gives us, try # this is a silly idea use syntax gather => { gather => { -as => 'bake' }, take => { -as => 'cake' }, }; my @vals = bake { cake (1...10) }; DESCRIPTION
Perl 6 provides a new control structure -- "gather" -- that allows lists to be constructed procedurally, without the need for a temporary variable. Within the block/closure controlled by a "gather" any call to "take" pushes that call's argument list to an implicitly created array. "take" returns the number of elements it took. This module implements that control structure. At the end of the block's execution, the "gather" returns the list of values stored in the array (in a list context) or a reference to the array (in a scalar context). For example, instead of writing: print do { my @wanted; while (my $line = <>) { push @wanted, $line if $line =~ /D/; push @wanted, -$line if some_other_condition($line); } push @wanted, 'EOF'; join q{, }, @wanted; }; instead we can write: print join q{, }, gather { while (my $line = <>) { take $line if $line =~ /D/; take -$line if some_other_condition($line); } take 'EOF'; } and instead of: my $text = do { my $string; while (<>) { next if /^#|^s*$/; last if /^__[DATA|END]__ $/; $string .= $_; } $string; }; we could write: my $text = join q{}, gather { while (<>) { next if /^#|^s*$/; last if /^__[DATA|END]__ $/; take $_; } }; There is also a third function -- "gathered" -- which returns a reference to the implicit array being gathered. This is useful for handling defaults: my @odds = gather { for @data { take $_ if $_ % 2; take to_num($_) if /[one|three|five|nine]$/; } take (1,3,5,7,9) unless gathered; } Note that -- as the example above implies -- the "gathered" function returns a special Perl 5 array reference that acts like a Perl 6 array reference in boolean, numeric, and string contexts. It's also handy for creating the implicit array by some process more complex than by simple sequential pushing. For example, if we needed to prepend a count of non-numeric items: my @odds = gather { for @data { take $_ if $_ %2; take to_num($_) if /[one|three|five|seven|nine]$/; } unshift gathered, +grep(/[a-z]/i, @data); } Conceptually "gather"/"take" is the generalized form from which both "map" and "grep" derive. That is, we could implement those two functions as: sub map (&@) { my $coderef = shift; my @list = @{shift @_}; return gather { take $coderef->($_) for (@list) }; } sub grep (&@) { my $coderef = shift; my @list = @{shift @_}; return gather { take $_ if $coderef->($_) for @list }; } A "gather" is also a very handy way of short-circuiting the construction of a list. For example, suppose we wanted to generate a single sorted list of lines from two sorted files, but only up to the first line they have in common. We could gather the lines like this: my @merged_diff = gather { my $a = <$fh_a>; my $b = <$fh_b>; while(1) { if ( defined $a && defined $b ) { if ($a eq $b) { last } # Duplicate means end of list elsif ($a lt $b) { take $a; $a = <$fh_a>; } else { take $b; $b = <$fh_b>; } } elsif (defined $a) { take $a; $a = <$fh_a>; } elsif (defined $b) { take $b; $b = <$fh_b>; } else { last } } } NAME
Syntax::Keyword::Gather - Implements the Perl 6 'gather/take' control structure in Perl 5 HISTORY
This module was forked from Damian Conway's Perl6::Gather for a few reasons. to avoid the slightly incendiary name =item to avoid the use of the Perl6::Exporter =item ~ doesn't overload to mean string context =item to no longer takes the current topic ($_) The last item is actually due to an unintended side-effect of the fact that if "take" has an array of zero length it takes $_, which is suprising at the very least. I'll fix that issue if I can. BUGS AND IRRITATIONS
It would be nice to be able to code the default case as: my @odds = gather { for (@data) { take if $_ % 2; take to_num($_) if /(?:one|three|five|nine)z/; } } or (1,3,5,7,9); but Perl 5's "or" imposes a scalar context on its left argument. This is arguably a bug and definitely an irritation. AUTHORS
o Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com> o Damian Conway COPYRIGHT AND LICENSE
This software is copyright (c) 2010 by Arthur Axel "fREW" Schmidt. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. perl v5.10.1 2011-02-25 Syntax::Keyword::Gather(3pm)
All times are GMT -4. The time now is 03:05 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy