in reply to Re: What is Perl way to simultaneously assign to three separate arrays?
in thread What is Perl way to simultaneously assign to three separate arrays?
Thank you for your comments, esp. named captures and proper use of dump.
When I run the code, the array ends up having nine separate scalar elements instead of three references to anonymous arrays containing three scalar elements each
Here's what I'm currently getting:
[ "/projects/2138137193/iblab?ref=discovery", 2138137193, "iBlab", "/projects/2060538158/nz-hosting?ref=discovery", 2060538158, "NZ Hosting", "/projects/1956727289/how-to-build-a-spaceship?ref=discovery", 1956727289, "How To Build A Spaceship", ]
Here's what I want:
[ [ "/projects/2138137193/iblab?ref=discovery", 2138137193, "iBlab" ], [ "/projects/2060538158/nz-hosting?ref=discovery", 2060538158, "NZ Hosting" ], [ "/projects/1956727289/how-to-build-a-spaceship?ref=discovery", 1956727289, "How To Build A Spaceship" ] ]
How is this possible given the constraint that the entire HTML content is a scalar (obtained via LWP)?
(I realize I can "post-process" the @projects array but I'd like to know if everything can be done in a single assignment without any munging afterward.)
#! perl -w use strict; use Data::Dump qw(dump); my $html = '<h6 class="project-title"><a href="/projects +/2138137193/iblab?ref=discovery" target="">iBlab</a></h6><h6 class="p +roject-title"><a href="/projects/2060538158/nz-hosting?ref=discovery" + target="">NZ Hosting</a></h6><h6 class="project-title"><a href="/pro +jects/1956727289/how-to-build-a-spaceship?ref=discovery" target="">Ho +w To Build A Spaceship</a></h6>'; my @projects = $html =~ m|<h6 class="project-title"><a href="(/project +s/(\d+)/.+?\?ref=discovery)" target="">(.+?)</a></h6>|g; dump \@projects;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: What is Perl way to simultaneously assign to three separate arrays?
by LanX (Saint) on Feb 15, 2015 at 10:42 UTC | |
by CoVAX (Beadle) on Feb 15, 2015 at 20:40 UTC | |
|
Re^3: What is Perl way to simultaneously assign to three separate arrays?
by CoVAX (Beadle) on Feb 15, 2015 at 08:42 UTC |