Hi all, I had to implement a co-relation problem in perl. I have two arrays i.e. array1 and array2 which contain following values.
array1 array2 read book eat apple book novel apple banana play football tennis football novel mazagine
I want my output as:
array1 array2 array3 array4 read book novel magazine eat apple banana play football tennis
i tried implementing it with simple for loops as:
for($i=0;$i<$arraylength;$i++) { for($j=0;$j<$arraylength;$j++) { if($array2[$i]== $array1[$j]) { $array3[$i] = $array2[$j]; } } } for($i=0;$i<$arraylength;$i++) { for($j=1;$j<$arraylength;$j++) { if($array2[$i]== $array2[$j]) { $array3[$i] = $array1[$j]; } } } for($i=0;$i<$arraylength;$i++) { for($j=0;$j<$arraylength;$j++) { if($array2[$i]== $array1[$j]) { $array4[$i] = $array3[$j]; } } }
But it was not showing the proper output. It was shows some random output in array3 and array4. Then a perl monk gave me a suggestion how to implemet and which works.The code is:
#!perl use strict; use warnings; my @array1 = qw(read eat book apple play football novel); my @array2 = qw(book apple novel banana football tennis magazine); # The follows relationship my %follow; @follow{@array1} = @array2; # Keeping track of what followers I have already used my %h2 = map {$_=>1} @array2; # Start with things that are not followers my @out = ([grep !exists $h2{$_}, @array1]); # Put followers of the previous column on as a new column while (%h2) { push @out, [@follow{@{$out[-1]}}]; delete @h2{@{$out[-1]}}; } use Data::Dumper; print Dumper(\@out); END { use Data::Dumper; print Dumper(\@out); }
But the problem is I have to insert each column value into each of mysql column.i.e. as follows:
read eat play in Column1 of the table in mysql book apple book in Column2 of the table in mysql novel banana tennis in Column3 of the table in mysql magazine in Column4 of the table in mysql
I tried implementing this by
#my $insert= $dbh->prepare("INSERT INTO Table values (?,?,?,?)"); my $san=0; my @array1 = qw(read eat book apple play football novel); my @array2 = qw(book apple novel banana football tennis magazine); # The follows relationship my %follow; @follow{@array1} = @array2; # Keeping track of what followers I have already used my %h2 = map {$_=>1} @array2; # Start with things that are not followers my @out = ([grep !exists $h2{$_}, @array1]); # Put followers of the previous column on as a new column while (%h2) { push @out, [@follow{@{$out[-1]}}]; delete @h2{@{$out[-1]}}; } use Data::Dumper; print Dumper(\@out); $insert->execute($out[0],$out[1],$out[2],$out[3]) END { use Data::Dumper; print Dumper(\@out); print "@out[1]"; } $insert->finish(); $dbh->disconnect or warn $dbh->errstr;
But it doesnt shoe the proper output. Infact some some value like
ARRAY(0x832d990) ARRAY(0x832d9xx) ARRAY(0x832d943)
Please guide me.. Thanking you

In reply to insert perl dumper value in mysql by sharan

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.