Can't use string ("") as an Array ref

I'm getting the following when trying running the following code with
use strict; without it, it works fine.=20

=23=21/usr/bin/perl -w=20
use strict;=20
use warnings;=20
use Data::Dumper;=20

my (=40data,=40contents);=20

=40data =3D <STDIN>;

push(=40contents,map =7B =5B split/:/,=24_ =5D if/=5E=5Cw+/ =7D (sort =
=40data) );=20
for(1..=24=23contents) =7B=20
  print =24contents=5B=24_->=5B0=5D . =22=5Cn=22 if =
defined(=24contents=5B=24_=5D->=5B0=5D);=20
=7D


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - =
- - - - - - -

This message is intended only for the personal and confidential use of the =
designated recipient(s) named above.  If you are not the intended =
recipient of this message you are hereby notified that any review, =
dissemination, distribution or copying of this message is strictly =
prohibited.  This communication is for information purposes only and =
should not be regarded as an offer to sell or as a solicitation of an =
offer to buy any financial product, an official confirmation of any =
transaction, or as an official statement of Lehman Brothers.  Email =
transmission cannot be guaranteed to be secure or error-free.  Therefore, =
we do not represent that this information is complete or accurate and it =
should not be relied upon as such.  All information is subject to change =
without notice.

--------
IRS Circular 230 Disclosure:
Please be advised that any discussion of U.S. tax matters contained within =
this communication (including any attachments) is not intended or written =
to be used and cannot be used for the purpose of (i) avoiding U.S. tax =
related penalties or (ii) promoting, marketing or recommending to another =
party any transaction or matter addressed herein.


0
rodrick
7/6/2007 12:27:16 PM
perl.beginners 29388 articles. 4 followers. Follow

1 Replies
642 Views

Similar Articles

[PageSpeed] 19

Brown, Rodrick wrote:
> I'm getting the following when trying running the following code with
> use strict; without it, it works fine. 
> 
> #!/usr/bin/perl -w 
> use strict; 
> use warnings; 
> use Data::Dumper; 
> 
> my (@data,@contents); 
> 
> @data = <STDIN>;
> 
> push(@contents,map { [ split/:/,$_ ] if/^\w+/ } (sort @data) ); 
> for(1..$#contents) { 
>   print $contents[$_->[0] . "\n" if defined($contents[$_]->[0]); 
> }


I assume that should be

    print $contents[$_]->[0] . "\n" if defined($contents[$_]->[0]); 


You're trying to do far too much in one convoluted line and it isn't working.

map { [ split/:/,$_ ] if/^\w+/ } (sort @data)

will pass the elements of @data through unprocessed if they don't start
with a word character. Once of the lines in your file is empty, so the statement
in the subsequent loop is trying to use the empty string as an array reference.

It's unclear what your trying to do, but to print in sorted order all those lines
in the file which start with a word character, truncating them at the first colon
if there is one, how about:

use strict;
use warnings;

my @contents;

while (<STDIN>) {
  chomp;
  next unless /^(\w[^:]+)/;
  push @contents, $1;
}

print "$_\n" foreach sort @contents;


HTH,

Rob

0
rob
7/6/2007 1:15:45 PM
Reply:

Similar Artilces:

DBD::Proxy::db table_info failed: Server returned error: Failed to execute method CallMethod: Can't use string ("1") as an ARRAY ref while "strict refs" in use
------_=_NextPart_001_01C2BB46.4379CEA8 Content-Type: multipart/related; type="multipart/alternative"; boundary="----_=_NextPart_002_01C2BB46.4379CEA8" ------_=_NextPart_002_01C2BB46.4379CEA8 Content-Type: multipart/alternative; boundary="----_=_NextPart_003_01C2BB46.4379CEA8" ------_=_NextPart_003_01C2BB46.4379CEA8 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable I'm having a problem using the table_info() via ProxyServer... I'm = getting the following error messages: I am us...

Can't use string ("1") as a HASH ref while "strict refs" in use at ./policy.sanitizer line 255.
Hi there, I am trying to figure out why the following lines are giving me an error: --- snip --- $found{filter}{$filter}{family}{$family} = 1; print keys %{ $found{filter}{$filter}{family} }; --- snip ---- here's the error Can't use string ("1") as a HASH ref while "strict refs" in use at ../policy.sanitizer line 255. I am trying to the display all the keys for $found{filter}{$filter}{family} please Cheers, Noah On 10/9/09 Fri Oct 9, 2009 2:12 PM, "Noah" <noah-list@enabled.com> sc...

Can't use string ("3862926") as a HASH ref while "strict refs"
I guess I'm not understanding what I'm doing (or have been reading in my web searches)... Can someone explain the difference between these two code snippets... SUN83-PRODWEB>more foo #! /usr/local/bin/perl use strict; my %t; my ($a, $c); my ($aa, $cc); $a=3D$aa=3D1; $c=3D$cc=3Dq{Additional Electrical Circuit}; $t{$a}{$c}{AMT}=3D1000; $c=3Dq{Additional}; $t{$a}{$c}{AMT}=3D2; print $t{$aa}{$cc}{AMT}, "\n"; &Ix($t{$aa}{$cc}{AMT}); sub Ix { my ($v) =3D @_; ...

Can't use string ("1") as a HASH ref while "strict refs"
--00151747694010009a04ad544f1b Content-Type: text/plain; charset=UTF-8 Hi, I was getting this error message for one of my script. The reason came out out to be, I had not place a semi-colon at the end of try-catch block. try { something } catch some_exception { do something } After I placed the semi-colon, I am no longer getting this error (Can't use string ("1") as a HASH ref while "strict refs") try { something } catch some_exception { do something }; My questions is I have quite a few scripts that are using the SAME try-catch...

bugzilla: undef error
I'm encountering the problem described here: https://bugzilla.mozilla.org/show_bug.cgi?id=300448 I'm running bugzilla 2.18.3 on fedora. The problem seems to be that a line was added to this file: template/en/default/bug/create/created.html.tmpl So I commented out this line: mailrecipients = item.mailrecipients and restarted everything, but I'm still getting the same error. I'm not sure that I understand the solution very well. Any ideas? Thanks, Bryan ...

lwp-rget error message ("can't use string ("URI::URL") as ARRAY ref)
I've been using lwp-rget, for instance: cyc$ lwp-rget --depth=2 --limit=100 "http://www.somesite.com/~whoever with no problems. tonight I got this msg: Can't use string ("URI::URL") as an ARRAY ref while "strict refs" in use at /usr/local/path_to_module/URI/WithBase.pm line 41. version info: This is perl, version 5.005_03 built for i386-freebsd and: This is lwp-rget version 1.19 (libwww-perl-5.52) Any advice would be really appreciated. CYC. Hi! I have a simple program which opens each URL in a file and saves ...

Can't use string as a subroutine ref while "strict refs"
Hello, I am trying to do the following, do I need to remove the strict option for this to work or is there a better way ? --snip-- sub admin { my $term = shift; my $host = shift; my @actions = ( "ssh_login", "su_login", "su_logout", "ssh_logout", "cmds" ); foreach my $a (@actions) { &show_log("Calling $a"); my $check= &{$a}; return(1) unless $check==0; } } --snip-- -- Michael Gale Red Hat Certified Engineer Network Administrator Pason Systems Corp. You could...

Can't use string as a subroutine ref while "strict refs"
------=_NextPart_000_0004_01C70428.644E8960 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable use strict; use warnings; use CGI; my $q =3D new CGI; my $do =3D $q->param('do') || 'main''; if ($do) { &$do; } sub main { blah blah } =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Trying to call the subroutine main from variable $do but I am gettin' = error: Can't use string ("main") as a subroutin...

(setxkbmap) can't use "ALT_GR"/"left ALT" button after using it
hello folks i use LXDE as i'm known and my only solution to switch keyboard is to use setxkbmap now after i define keyboards layouts to switch and chose ALT+Shift to switch it goes "bugged" using the right ALT will switch the layouts and i'm not able to write the "other" letters help please P.S : this is the command i use �setxkbmap -option grp:switch,grp:alt_shift_toggle,grp_led:scroll fr,ar� -- SAFAD ------------------------------------------------------------------------ bump up rotfl! -- SAFAD -------------------------------...

Can't use string ("bug/create/create-guided.html.tm") as a HASH ref
- I could use some help with my Bugzilla install - I have installed the stable release of Bugzilla (2.16.5) and have customized some of the templates (which is a cool new way to do things). I am following the instructions to modify create.html.tmpl and comment.txt.tmpl to create some fields for bug entry. However, I get the following perl error message and I can't figure out why: Can't use string ("bug/create/create-guided.html.tm") as a HASH ref while "strict refs" in use at /usr/lib/perl5/site_perl/5.8.0/Template/Provider.pm line 663. I am new to...

why can't i use the attribute "onchange" or "onfocus" in checkbox
when i use the code like this:myCheckBox.Attributes["onfocus"]="this.blur()" it doesn't work,just generate the tag "span" containing the javascriptMSN:supNate2000@hotmail.com You should be using RegisterStartupScript or RegisterClientScript. See this article by Scott Mitchell: Injecting Client-Side Script from an ASP.NET Server Control http://msdn.microsoft.com/asp.net/using/understanding/aspnet/default.aspx?pull=/library/en-us/dnaspp/html/aspnet-injectclientsidesc.aspDarrell Norton, MVPDarrell Norton's BlogPlease mark this post as answered if it...

Can't we use "Usercontrol" in an "asp:view" control in asp.net
 HiIn my application i have used multiview and view controls i have implemented some user controlsnow i don't want to write the whole code in view control instead i want to use the usercontrolcan we place the usercontrol in view controlhow can we do thati have registered the usercontrol but when I'm trying to place in view control its not showing the tagprefixdoes anyone know this how to dothanks in advanceArchu   archu136:  Hi In my application i have used multiview and view controls i have implemented some user controls now i don't want to writ...

Using "Address Selector" in "Find by Example"
Hi When doing a find by example and using the address selector to double click a resopurce address to select it 80% of the time it enters the first entry in the address book rather than the address selected. For user addresses it works fine though. Is there a way to use the address selectro in a find by example? Or do you have to type the address for resources? Thanks Rampaola, It appears that in the past few days you have not received a response to your posting. That concerns us, and has triggered this automated reply. Has your problem been resolved? If not, you ...

<script language="javascript" runat="server"> can't be used?
I place this inside on a content page: <script language="javascript" runat="server"> function ontextchange() { document.getElementById("ctl00_ContentPlaceHolder1_lbl_CatchInfo").innerHTML = "change in text or whatever"; } </script> and get an error saying JavaScript can't be used as another language has been stated by the CodeFile-attribute...? It works if i remove the runat=server tag----What is wrong??? javascript is a client side language. take out the "runat =server" part and see what happens Becaus...

Web resources about - Can't use string ("") as an Array ref - perl.beginners

Resources last updated: 12/23/2015 2:05:10 PM