home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / languages / perl / scripts-osu / operl.shar / bag.pl next >
Encoding:
Perl Script  |  1991-02-25  |  537 b   |  16 lines

  1. #!/usr/bin/perl
  2. require 'operl.pl';
  3.  
  4. &defclass ('bag','root');
  5. &defmethod('bag','put',      '$elements{$_[0]}++;');
  6. &defmethod('bag','how_many', '$elements{$_[0]};');
  7. &defmethod('bag','kinds',    'keys(%elements);');
  8. &defmethod('bag','delete', 
  9.     'delete $elements{$_[0]} if --$elements{$_[0]} <= 0;');
  10. &defmethod('bag','has',      'defined($elements{$_[0]})');
  11. &defmethod('bag','size',     'foreach $n (%elements) {$sum += $n;};$sum;');
  12. &defmethod('bag','dump',
  13.     'while (($key, $val) = each %elements) {print "$key = $val\n";}');
  14.  
  15. 1;
  16.