Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / perl-5.8.0 / lib / site_perl / 5.8.0 / Pastel / Mixin / Mixin.pm
CommitLineData
86530b38
AT
1package Pastel::Mixin::Mixin;\r
2\r
3# The sole purpose of the existance of this module is to provide some low\r
4# level functionality to the Pastel package. This module is automatically called\r
5# by all the modules.\r
6\r
7\r
8# I liked this method from the bioperl modules. I just lifted it verbatim. Great works\r
9# guys!!!!\r
10\r
11sub _rearrange {\r
12\r
13 \r
14 my($self,$order,@param) = @_;\r
15 \r
16 return unless @param;\r
17 return @param unless (defined($param[0]) && $param[0]=~/^-/); \r
18 \r
19 for (my $i=0;$i<@param;$i+=2) {\r
20 $param[$i]=~s/^\-//;\r
21 $param[$i]=~tr/a-z/A-Z/;\r
22 }\r
23 \r
24 # Now we'll convert the @params variable into an associative array.\r
25 local($^W) = 0; # prevent "odd number of elements" warning with -w.\r
26 my(%param) = @param;\r
27 \r
28 my(@return_array);\r
29 \r
30 # What we intend to do is loop through the @{$order} variable,\r
31 # and for each value, we use that as a key into our associative\r
32 # array, pushing the value at that key onto our return array.\r
33 my($key);\r
34 \r
35 foreach $key (@{$order}) {\r
36 my($value) = $param{$key};\r
37 delete $param{$key};\r
38 push(@return_array,$value);\r
39 }\r
40 \r
41# print "\n_rearrange() after processing:\n";\r
42# my $i; for ($i=0;$i<@return_array;$i++) { printf "%20s => %s\n", ${$order}[$i], $return_array[$i]; } <STDIN>;\r
43\r
44 return (@return_array);\r
45}\r
46\r
47=head1\r
48\r
49 sub print_svg {\r
50 my $self = shift;\r
51 my $data = shift;\r
52 # my $indent_level = $self->{_indent_level};\r
53 my $indent_type = " "; # 4 spaces indent\r
54\r
55 my $indent = $indent_type x $self->{_indent_level};\r
56 print "$indent$data\n";\r
57\r
58 while ($data =~ /</gi){\r
59 $self->{_indent_level}++;\r
60#print "Increase indent\n";\r
61#print $self->{_indent_level};\r
62\r
63 }\r
64 while ($data =~ /\/>/gi ){\r
65 $self->{_indent_level}--;\r
66#print $self->{_indent_level};\r
67 }\r
68 while ($data =~ /<\//gi ){\r
69 $self->{_indent_level} -= 2;\r
70 \r
71 #print $self->{_indent_level};\r
72 }\r
73\r
74\r
75}\r
76=cut\r
77 \r
78sub _min {\r
79 my $self = shift;\r
80 my ($a, $b) = @_;\r
81\r
82 if ($a == $b){\r
83 return $a;\r
84 }\r
85 \r
86 if ($a > $b){\r
87 return $b;\r
88 }\r
89\r
90 else {\r
91 return $a;\r
92 }\r
93}\r
94\r
95sub _max {\r
96 my $self = shift;\r
97 my ($a, $b) = @_;\r
98\r
99 if ($a == $b){\r
100 return $a;\r
101 }\r
102 elsif ($a > $b) {\r
103 return $a;\r
104 }\r
105\r
106 else {\r
107 return $b;\r
108 }\r
109}\r
110\r
111 \r
1121;\r