Glad to hear it. You'll need to use PDL::inner() instead of just inner() to call the PDL routine. Happy PDL-ing! --Chris
On Wed, Jul 30, 2014 at 6:38 PM, tsuyoshi okita <[email protected]> wrote: > Dear Chris-san, > > I just tried and the warning is no longer there!!! > Thank you very much. > > Tsuyoshi > > > > On 2014年07月31日 06:45, Doug Hunt wrote: >> >> Thanks much, Chris: That helps me as well. >> >> --Doug >> >> [email protected] >> Software Engineer >> UCAR - COSMIC, Tel. (303) 497-2611 >> >> On Wed, 30 Jul 2014, Chris Marshall wrote: >> >>> Since Moose always exports inner() and 'use PDL' does as >>> well, you'll need to "fix" the problem somehow. >>> >>> Since the inner() exported by 'use PDL' is also accessible as >>> a method call, you can 'use PDL::Lite' to avoid exporting any >>> functions from PDL and call everything as a method. >>> >>> A hack-ish but simple fix is to use Sub::Delete to remove >>> the PDL inner routine from main: before use-ing Moose. >>> For example, this gives a warning: >>> >>> use PDL; >>> use Moose; >>> >>> But this does not: >>> >>> BEGIN { >>> use PDL; >>> use Sub::Delete; >>> delete_sub 'inner'; >>> } >>> use Moose; >>> >>> where I used a BEGIN{} block to make the delete_sub call >>> take place *before* the loading of Moose. >>> >>> Hope this helps, >>> Chris >>> >>> >>> On Tue, Jul 29, 2014 at 7:50 PM, tsuyoshi okita >>> <[email protected]> wrote: >>>> >>>> Dear all, >>>> >>>> Thank you very much for your quick replies!! >>>> I've got pdl() part. >>>> So in order to make inner() NOT collide, I need to unexport inner() >>>> either >>>> from Moose or PDL, PDL::Graphics::PLplot. >>>> So you are saying I need to look into those modules and unexport either >>>> of >>>> them...right??? >>>> ugghhhh....*_* >>>> Is there an easy way to do that?? >>>> or do I need to unexport PDL or PDL::Graphics::PLplot and change inner() >>>> to >>>> PDL::inner() and so on.... >>>> >>>> I just tried a following and it did not work...: >>>> use Moose; >>>> no strict; >>>> use PDL; >>>> use aliased 'PDL::Graphics::PLplot'; >>>> use strict; >>>> >>>> thank you. >>>> >>>> Sincerely, >>>> Tsuyoshi Okita >>>> >>>> >>>> >>>> >>>> On 2014?07?30? 02:14, Chris Marshall wrote: >>>>> >>>>> >>>>> On Tue, Jul 29, 2014 at 11:16 AM, Doug Hunt<[email protected]> wrote: >>>>>> >>>>>> >>>>>> Hi Tsuyoshi: >>>>>> >>>>>> I've never used PDL and PDL::Graphics::PLplot with Moose. PDL list >>>>>> folks: >>>>>> have any of you had this problem and overcome it? >>>>>> >>>>>> As to item 2, I think code like this for $y: >>>>>> >>>>>> my $y = pdl(0,1,2,104,4,5,24,7,8,99); >>>>>> >>>>>> would make things work. Currently, your $y is a reference >>>>>> to a perl list, not a pdl object. >>>>>> >>>>>> Regards, >>>>>> >>>>>> Doug Hunt >>>>>> >>>>>> >>>>>> [email protected] >>>>>> Software Engineer >>>>>> UCAR - COSMIC, Tel. (303) 497-2611 >>>>>> >>>>>> On Tue, 29 Jul 2014, tsuyoshi okita wrote: >>>>>> >>>>>>> Hello, >>>>>>> >>>>>>> Thank you for providing us PDL::Graphics::PLplot. >>>>>>> I have a several questions I need to ask. I could not find any >>>>>>> mailing >>>>>>> list for PDL::Graphics::PLplot. >>>>>>> I just started to using PDL::Graphics::PLplot. So my questions might >>>>>>> sound silly to you, but I hope you can bear with it. >>>>>>> >>>>>>> 1. I attached a simple perl code. This is what happends. >>>>>>> if I add use Moose; it gives a following message: >>>>> >>>>> >>>>> This is because Moose enables the strict pragma and PDL >>>>> exports the inner() routine which apparently collides with another >>>>> declaration/definition of inner(). >>>>> >>>>>>> "Prototype mismatch: sub main::inner: none vs (;@) at (eval 168) line >>>>>>> 8." >>>>>>> 2. I have been trying to plot a bundle of data. >>>>>>> my $x = sequence(10); >>>>>>> my $y = [0,1,2,104,4,5,24,7,8,99]; >>>>>>> $pl->xyplot($x, $y,); >>>>>>> $pl->close; >>>>>>> >>>>>>> this code gives me this error message: >>>>>>> "Can't call method "minmax" on unblessed reference at >>>>>>> /usr/local/lib/perl/5.14.2/PDL/Graphics/PLplot.pm line 1595." >>>>> >>>>> >>>>> As Doug points out, the problem is that PDL::Graphics::PLplot takes >>>>> PDL objects as input rather than perl list/list-refs. If you need to >>>>> use >>>>> both the list ref and a PDL object you can use the pdl() constructor >>>>> to make a "piddle" and the ->unpdl method to regenerate an >>>>> equivalent set of list refs. >>>>> >>>>>>> I understand this has to do with $y. It works if I add my $y = >>>>>>> sequence(10);. >>>>>>> I looked into PDL::Graphics::PLplot site and plplot documents, but >>>>>>> nothing >>>>>>> mention about sequence(). >>>>>>> >>>>>>> I am sure you are busy, but if you can help me out, I would be >>>>>>> grateful. >>>>> >>>>> >>>>> I'm glad Doug was able to help you out. I recommend joining the perldl >>>>> mailing list which is where PDL is supported and is usually the best >>>>> way to get help. >>>>> >>>>> --Chris >>>>> >>>>>>> Thank you. >>>>>>> Tsuyoshi Okita >>>> >>>> >>>> >>> >>> _______________________________________________ >>> Perldl mailing list >>> [email protected] >>> http://mailman.jach.hawaii.edu/mailman/listinfo/perldl > > _______________________________________________ Perldl mailing list [email protected] http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
