Thanks,
It did work.
Regards,
Manish


Jeff Wood wrote:
> Or, you could use a simple throw-catch pair.
>
> % irb
> irb(main):001:0> catch :done do
> irb(main):002:1*
> irb(main):003:1*   10.times do |x|
> irb(main):004:2*
> irb(main):005:2*      [1,2,3].each do |y|
> irb(main):006:3*        throw :done if x == 4 && y == 2
> irb(main):007:3>        puts "#{ x } : #{ y }"
> irb(main):008:3>        break if y == 2
> irb(main):009:3>      end
> irb(main):010:2>
> irb(main):011:2*   end
> irb(main):012:1>
> irb(main):013:1* end
> 0 : 1
> 0 : 2
> 1 : 1
> 1 : 2
> 2 : 1
> 2 : 2
> 3 : 1
> 3 : 2
> 4 : 1
> => nil
> irb(main):014:0>
>
>
> ... so yeah, I didn't see the internal block the first time ... it will
> only stop the most internal iterator ...
>
> A throw-catch will bail to whatever level you define.
>
> jd
>
> _______________________________________________
> Wtr-general mailing list
> Wtr-general@rubyforge.org
> http://rubyforge.org/mailman/listinfo/wtr-general
>   

_______________________________________________
Wtr-general mailing list
Wtr-general@rubyforge.org
http://rubyforge.org/mailman/listinfo/wtr-general

Reply via email to