Hi, cl, jesse The introduced names are not top-level package names but package global functions.
"Foo" is a method imported from Jifty::ModelHelpers with body defined there with some code looks like this: *{"Foo"} = sub { my @arg = @_; my $obj = Jifty->app_class(Model => "Foo"); if (@arg == 1) { $obj->load(@arg) } elsif (@arg % 2 == 0) { $obj->load_by_cols(@arg); } return $obj; }; Only they are generated in the body of Jifty::ModelHelpers package. Not even playing any import magic. These functions won't be there unless people say "use Jifty::ModelHelpers" of course. And I almost always need something this easy in View.pm and Dispatcher.pm, and only in there. So I feel this is should be quite sane. There could be also be import tags like, :all, :collections, :models. Or even dynamic tags like ":foo", which exports only Foo and FooCollection. A globally availble M() function helped me for a while but today I figured out the shortcut is only required in View.pm and Dispatcher.pm. Not in my Action code because I seldom defined my own action code. Therefore I decided to try to push this further and came up with ModelHelpers.pm. I don't really have any idea that prevents namespace clobbering issue yet... but now I recalled that I released a roughly working version of DBIx::CSSQuery before which let you fetch database records with CSS selector syntax. With that, to do: Jifty->app_class(Model => "Foo")->load(1); You say: db("foo[id=1]") (I did'nt named it DBIx::jQuery for some reason but maybe I should have done that.) If I can managed to use that in my Jifty code base it'll make me super happy too. :) /me really wants to reuse my learnings. -- Cheers, Kang-min Liu _______________________________________________ jifty-devel mailing list jifty-devel@lists.jifty.org http://lists.jifty.org/cgi-bin/mailman/listinfo/jifty-devel