Re: [Mojolicious] Understanding shift->
On 11/24/18 2:51 PM, Dan Book wrote: The shift function removes and returns the first argument from @_ (since there's no array passed for it to shift from) in a sub. It's used this way because the first argument to these subs is the invocant/object. You can replace it with $_[0] to get the first argument without removing it. You should not use $self from outside unless necessary because that may create a circular reference and leak memory. Thanks. I totally missed that it was being used in a sub in those cases. -- You received this message because you are subscribed to the Google Groups "Mojolicious" group. To unsubscribe from this group and stop receiving emails from it, send an email to mojolicious+unsubscr...@googlegroups.com. To post to this group, send email to mojolicious@googlegroups.com. Visit this group at https://groups.google.com/group/mojolicious. For more options, visit https://groups.google.com/d/optout.
Re: [Mojolicious] Understanding shift->
The shift function removes and returns the first argument from @_ (since there's no array passed for it to shift from) in a sub. It's used this way because the first argument to these subs is the invocant/object. You can replace it with $_[0] to get the first argument without removing it. You should not use $self from outside unless necessary because that may create a circular reference and leak memory. -Dan On Sat, Nov 24, 2018 at 3:40 PM john wrote: > This probably a perl question so if I should ask elsewhere let me know... > > In looking at the Mojo::Pg blog example and in recent addition of db > method to Mojo::Pg::PubSub I see use of shift->. > > > From Mojo::Pg::PubSub documentation: > > # Reconnect immediately > $pubsub->unsubscribe('disconnect')->on(disconnect => sub { shift->db }); > > Or from the blog example: > > $self->helper(pg => sub { state $pg = Mojo::Pg->new(shift->config('pg')) > }); > > This doesn't work in my code and I replace "shift" with "$self". That > appears to be working. Also, I can't reconcile using shift in this way > and what the perl documentation says about it but could get over this if > it worked. > > What am I missing here? > > Thanks, > > John > > > -- > You received this message because you are subscribed to the Google Groups > "Mojolicious" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to mojolicious+unsubscr...@googlegroups.com. > To post to this group, send email to mojolicious@googlegroups.com. > Visit this group at https://groups.google.com/group/mojolicious. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Mojolicious" group. To unsubscribe from this group and stop receiving emails from it, send an email to mojolicious+unsubscr...@googlegroups.com. To post to this group, send email to mojolicious@googlegroups.com. Visit this group at https://groups.google.com/group/mojolicious. For more options, visit https://groups.google.com/d/optout.
[Mojolicious] Understanding shift->
This probably a perl question so if I should ask elsewhere let me know... In looking at the Mojo::Pg blog example and in recent addition of db method to Mojo::Pg::PubSub I see use of shift->. From Mojo::Pg::PubSub documentation: # Reconnect immediately $pubsub->unsubscribe('disconnect')->on(disconnect => sub { shift->db }); Or from the blog example: $self->helper(pg => sub { state $pg = Mojo::Pg->new(shift->config('pg')) }); This doesn't work in my code and I replace "shift" with "$self". That appears to be working. Also, I can't reconcile using shift in this way and what the perl documentation says about it but could get over this if it worked. What am I missing here? Thanks, John -- You received this message because you are subscribed to the Google Groups "Mojolicious" group. To unsubscribe from this group and stop receiving emails from it, send an email to mojolicious+unsubscr...@googlegroups.com. To post to this group, send email to mojolicious@googlegroups.com. Visit this group at https://groups.google.com/group/mojolicious. For more options, visit https://groups.google.com/d/optout.