Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re^3: [RFC] Module code and POD for CPAN

by jwkrahn (Abbot)
on Apr 14, 2021 at 16:52 UTC ( [id://11131287]=note: print w/replies, xml ) Need Help??


in reply to Re^2: [RFC] Module code and POD for CPAN
in thread [RFC] Module code and POD for CPAN

The problem is not the type of for loop, the problem is starting at the beginning of the array when changing the number of elements in the array.

If you are going to remove elements of an array in a for loop you have to start at the end of the array.

So this might work UNTESTED:

for my $i ( reverse 0 .. $#{ $self->{ trolley } } )

Replies are listed 'Best First'.
Re^4: [RFC] Module code and POD for CPAN
by Bod (Parson) on Apr 14, 2021 at 18:53 UTC

    Sorry, I wasn't thinking that changing the loop would cure the issue. Just noting that I intended to review that bit of code anyway.

    However...there doesn't seem to be a problem! I set up this test code to observe the problem highlighted and to be sure I have cured it.

    #!/usr/bin/perl use CGI::Carp qw(fatalsToBrowser); use cPanelUserConfig; use Bod::Stripe; use Data::Dumper; use strict; print "Content-type: text/plain\n\n"; my $stripe = Bod::Stripe->new( 'api-secret' => 'sk_test_5xxxxxxxnChHzDo', 'api-public' => 'pk_test_5xxxxxxxxmbegPN', ); if ($stripe->success) { my $res = $stripe->add_product( 'id' => '4E', 'name' => 'Dog food', 'description' => 'Boomer\'s favourite variety', 'qty' => 4, 'price' => 69, ); $stripe->add_product( 'id' => 2, 'name' => 'Dog treats', 'qty' => 2, 'price' => 150, ); $stripe->add_product( 'id' => 8, 'name' => 'Bod treats', 'qty' => 10, 'price' => 650, ); list('A'); $stripe->delete_product('2'); list('B'); $stripe->delete_product('4E'); list('C'); } else { print "FAILED: " . $stripe->error; } sub list { print "-- $_[0] --\n"; foreach ($stripe->list_products) { print "-> $_\n"; } print "\n"; }
    and it behaves exactly as I would expect giving this output:
    -- A -- -> 4E -> 2 -> 8 -- B -- -> 4E -> 8 -- C -- -> 8
    So deleting more than one product doesn't appear to be a problem.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11131287]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others cooling their heels in the Monastery: (3)
As of 2024-04-19 20:59 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found