BEGIN {
    require Tk;
    import Tk;
}

package ScrolledListbox;
@ISA = (Listbox, Scrollbar);
sub new {
    local($path) = shift;
    local($f) = Frame::new($path);
    local($l) = Listbox::new($f, @_);
    local($s) = Scrollbar::new($f, "-orient" => "vertical",
                               "-slave" => $l, "-method" => "yview");
    $l->configure("-yscrollslave" => $s, "-yscrollmethod" => "set");
    Tk::tkpack $s, $l, "-side" => "left", "-fill" => "y", "-expand" => "y";
    bless {Scrollbar => $s, Listbox => $l, Default => $f};
}

package main;
$top = tkinit;
$sl = ScrolledListbox::new($top);
foreach (1..25) {
    $sl->insert("end", "item" . $_);
}
tkpack $sl;
tkmainloop;
