File Coverage

blib/lib/Venus/Scalar.pm
Criterion Covered Total %
statement 17 22 77.2
branch n/a
condition 0 3 0.0
subroutine 8 10 80.0
pod 2 2 100.0
total 27 37 72.9


line stmt bran cond sub pod time code
1             package Venus::Scalar;
2              
3 12     12   300 use 5.018;
  12         50  
4              
5 12     12   71 use strict;
  12         30  
  12         304  
6 12     12   74 use warnings;
  12         25  
  12         366  
7              
8 12     12   65 use Venus::Class 'base';
  12         28  
  12         104  
9              
10             base 'Venus::Kind::Value';
11              
12             use overload (
13 1     1   6 '${}' => sub{$_[0]->value},
14 1     1   7 '*{}' => sub{$_[0]->value},
15 12         150 fallback => 1,
16 12     12   87 );
  12         36  
17              
18             # METHODS
19              
20             sub assertion {
21 0     0 1 0 my ($self) = @_;
22              
23 0         0 my $assertion = $self->SUPER::assertion;
24              
25             $assertion->match('scalarref')->format(sub{
26 0   0 0   0 (ref $self || $self)->new($_)
27 0         0 });
28              
29 0         0 return $assertion;
30             }
31              
32             sub default {
33 184     184 1 682 return \'';
34             }
35              
36             1;
37              
38              
39              
40             =head1 NAME
41              
42             Venus::Scalar - Scalar Class
43              
44             =cut
45              
46             =head1 ABSTRACT
47              
48             Scalar Class for Perl 5
49              
50             =cut
51              
52             =head1 SYNOPSIS
53              
54             package main;
55              
56             use Venus::Scalar;
57              
58             my $scalar = Venus::Scalar->new;
59              
60             # ${$scalar}
61              
62             =cut
63              
64             =head1 DESCRIPTION
65              
66             This package provides methods for manipulating scalar data.
67              
68             =cut
69              
70             =head1 INHERITS
71              
72             This package inherits behaviors from:
73              
74             L
75              
76             =cut
77              
78             =head1 METHODS
79              
80             This package provides the following methods:
81              
82             =cut
83              
84             =head2 cast
85              
86             cast(string $kind) (object | undef)
87              
88             The cast method converts L<"value"|Venus::Kind::Value> objects between
89             different I<"value"> object types, based on the name of the type provided. This
90             method will return C if the invocant is not a L.
91              
92             I>
93              
94             =over 4
95              
96             =item cast example 1
97              
98             package main;
99              
100             use Venus::Scalar;
101              
102             my $scalar = Venus::Scalar->new;
103              
104             my $cast = $scalar->cast('array');
105              
106             # bless({ value => [\""] }, "Venus::Array")
107              
108             =back
109              
110             =over 4
111              
112             =item cast example 2
113              
114             package main;
115              
116             use Venus::Scalar;
117              
118             my $scalar = Venus::Scalar->new;
119              
120             my $cast = $scalar->cast('boolean');
121              
122             # bless({ value => 1 }, "Venus::Boolean")
123              
124             =back
125              
126             =over 4
127              
128             =item cast example 3
129              
130             package main;
131              
132             use Venus::Scalar;
133              
134             my $scalar = Venus::Scalar->new;
135              
136             my $cast = $scalar->cast('code');
137              
138             # bless({ value => sub { ... } }, "Venus::Code")
139              
140             =back
141              
142             =over 4
143              
144             =item cast example 4
145              
146             package main;
147              
148             use Venus::Scalar;
149              
150             my $scalar = Venus::Scalar->new;
151              
152             my $cast = $scalar->cast('float');
153              
154             # bless({ value => "1.0" }, "Venus::Float")
155              
156             =back
157              
158             =over 4
159              
160             =item cast example 5
161              
162             package main;
163              
164             use Venus::Scalar;
165              
166             my $scalar = Venus::Scalar->new;
167              
168             my $cast = $scalar->cast('hash');
169              
170             # bless({ value => { "0" => \"" } }, "Venus::Hash")
171              
172             =back
173              
174             =over 4
175              
176             =item cast example 6
177              
178             package main;
179              
180             use Venus::Scalar;
181              
182             my $scalar = Venus::Scalar->new;
183              
184             my $cast = $scalar->cast('number');
185              
186             # bless({ value => 2 }, "Venus::Number")
187              
188             =back
189              
190             =over 4
191              
192             =item cast example 7
193              
194             package main;
195              
196             use Venus::Scalar;
197              
198             my $scalar = Venus::Scalar->new;
199              
200             my $cast = $scalar->cast('regexp');
201              
202             # bless({ value => qr/(?^u:\\\")/ }, "Venus::Regexp")
203              
204             =back
205              
206             =over 4
207              
208             =item cast example 8
209              
210             package main;
211              
212             use Venus::Scalar;
213              
214             my $scalar = Venus::Scalar->new;
215              
216             my $cast = $scalar->cast('scalar');
217              
218             # bless({ value => \"" }, "Venus::Scalar")
219              
220             =back
221              
222             =over 4
223              
224             =item cast example 9
225              
226             package main;
227              
228             use Venus::Scalar;
229              
230             my $scalar = Venus::Scalar->new;
231              
232             my $cast = $scalar->cast('string');
233              
234             # bless({ value => "\\\"" }, "Venus::String")
235              
236             =back
237              
238             =over 4
239              
240             =item cast example 10
241              
242             package main;
243              
244             use Venus::Scalar;
245              
246             my $scalar = Venus::Scalar->new;
247              
248             my $cast = $scalar->cast('undef');
249              
250             # bless({ value => undef }, "Venus::Undef")
251              
252             =back
253              
254             =cut
255              
256             =head2 default
257              
258             default() (Ref)
259              
260             The default method returns the default value, i.e. C<\''>.
261              
262             I>
263              
264             =over 4
265              
266             =item default example 1
267              
268             # given: synopsis;
269              
270             my $default = $scalar->default;
271              
272             # \""
273              
274             =back
275              
276             =cut
277              
278             =head2 eq
279              
280             eq(any $arg) (boolean)
281              
282             The eq method performs an I<"equals"> operation using the argument provided.
283              
284             I>
285              
286             =over 4
287              
288             =item eq example 1
289              
290             package main;
291              
292             use Venus::Array;
293             use Venus::Scalar;
294              
295             my $lvalue = Venus::Scalar->new;
296             my $rvalue = Venus::Array->new;
297              
298             my $result = $lvalue->eq($rvalue);
299              
300             # 0
301              
302             =back
303              
304             =over 4
305              
306             =item eq example 2
307              
308             package main;
309              
310             use Venus::Code;
311             use Venus::Scalar;
312              
313             my $lvalue = Venus::Scalar->new;
314             my $rvalue = Venus::Code->new;
315              
316             my $result = $lvalue->eq($rvalue);
317              
318             # 0
319              
320             =back
321              
322             =over 4
323              
324             =item eq example 3
325              
326             package main;
327              
328             use Venus::Float;
329             use Venus::Scalar;
330              
331             my $lvalue = Venus::Scalar->new;
332             my $rvalue = Venus::Float->new;
333              
334             my $result = $lvalue->eq($rvalue);
335              
336             # 0
337              
338             =back
339              
340             =over 4
341              
342             =item eq example 4
343              
344             package main;
345              
346             use Venus::Hash;
347             use Venus::Scalar;
348              
349             my $lvalue = Venus::Scalar->new;
350             my $rvalue = Venus::Hash->new;
351              
352             my $result = $lvalue->eq($rvalue);
353              
354             # 0
355              
356             =back
357              
358             =over 4
359              
360             =item eq example 5
361              
362             package main;
363              
364             use Venus::Number;
365             use Venus::Scalar;
366              
367             my $lvalue = Venus::Scalar->new;
368             my $rvalue = Venus::Number->new;
369              
370             my $result = $lvalue->eq($rvalue);
371              
372             # 0
373              
374             =back
375              
376             =over 4
377              
378             =item eq example 6
379              
380             package main;
381              
382             use Venus::Regexp;
383             use Venus::Scalar;
384              
385             my $lvalue = Venus::Scalar->new;
386             my $rvalue = Venus::Regexp->new;
387              
388             my $result = $lvalue->eq($rvalue);
389              
390             # 0
391              
392             =back
393              
394             =over 4
395              
396             =item eq example 7
397              
398             package main;
399              
400             use Venus::Scalar;
401              
402             my $lvalue = Venus::Scalar->new;
403             my $rvalue = Venus::Scalar->new;
404              
405             my $result = $lvalue->eq($rvalue);
406              
407             # 1
408              
409             =back
410              
411             =over 4
412              
413             =item eq example 8
414              
415             package main;
416              
417             use Venus::Scalar;
418             use Venus::String;
419              
420             my $lvalue = Venus::Scalar->new;
421             my $rvalue = Venus::String->new;
422              
423             my $result = $lvalue->eq($rvalue);
424              
425             # 0
426              
427             =back
428              
429             =over 4
430              
431             =item eq example 9
432              
433             package main;
434              
435             use Venus::Scalar;
436             use Venus::Undef;
437              
438             my $lvalue = Venus::Scalar->new;
439             my $rvalue = Venus::Undef->new;
440              
441             my $result = $lvalue->eq($rvalue);
442              
443             # 0
444              
445             =back
446              
447             =cut
448              
449             =head2 ge
450              
451             ge(any $arg) (boolean)
452              
453             The ge method performs a I<"greater-than-or-equal-to"> operation using the
454             argument provided.
455              
456             I>
457              
458             =over 4
459              
460             =item ge example 1
461              
462             package main;
463              
464             use Venus::Array;
465             use Venus::Scalar;
466              
467             my $lvalue = Venus::Scalar->new;
468             my $rvalue = Venus::Array->new;
469              
470             my $result = $lvalue->ge($rvalue);
471              
472             # 0
473              
474             =back
475              
476             =over 4
477              
478             =item ge example 2
479              
480             package main;
481              
482             use Venus::Code;
483             use Venus::Scalar;
484              
485             my $lvalue = Venus::Scalar->new;
486             my $rvalue = Venus::Code->new;
487              
488             my $result = $lvalue->ge($rvalue);
489              
490             # 0
491              
492             =back
493              
494             =over 4
495              
496             =item ge example 3
497              
498             package main;
499              
500             use Venus::Float;
501             use Venus::Scalar;
502              
503             my $lvalue = Venus::Scalar->new;
504             my $rvalue = Venus::Float->new;
505              
506             my $result = $lvalue->ge($rvalue);
507              
508             # 1
509              
510             =back
511              
512             =over 4
513              
514             =item ge example 4
515              
516             package main;
517              
518             use Venus::Hash;
519             use Venus::Scalar;
520              
521             my $lvalue = Venus::Scalar->new;
522             my $rvalue = Venus::Hash->new;
523              
524             my $result = $lvalue->ge($rvalue);
525              
526             # 0
527              
528             =back
529              
530             =over 4
531              
532             =item ge example 5
533              
534             package main;
535              
536             use Venus::Number;
537             use Venus::Scalar;
538              
539             my $lvalue = Venus::Scalar->new;
540             my $rvalue = Venus::Number->new;
541              
542             my $result = $lvalue->ge($rvalue);
543              
544             # 1
545              
546             =back
547              
548             =over 4
549              
550             =item ge example 6
551              
552             package main;
553              
554             use Venus::Regexp;
555             use Venus::Scalar;
556              
557             my $lvalue = Venus::Scalar->new;
558             my $rvalue = Venus::Regexp->new;
559              
560             my $result = $lvalue->ge($rvalue);
561              
562             # 0
563              
564             =back
565              
566             =over 4
567              
568             =item ge example 7
569              
570             package main;
571              
572             use Venus::Scalar;
573              
574             my $lvalue = Venus::Scalar->new;
575             my $rvalue = Venus::Scalar->new;
576              
577             my $result = $lvalue->ge($rvalue);
578              
579             # 1
580              
581             =back
582              
583             =over 4
584              
585             =item ge example 8
586              
587             package main;
588              
589             use Venus::Scalar;
590             use Venus::String;
591              
592             my $lvalue = Venus::Scalar->new;
593             my $rvalue = Venus::String->new;
594              
595             my $result = $lvalue->ge($rvalue);
596              
597             # 1
598              
599             =back
600              
601             =over 4
602              
603             =item ge example 9
604              
605             package main;
606              
607             use Venus::Scalar;
608             use Venus::Undef;
609              
610             my $lvalue = Venus::Scalar->new;
611             my $rvalue = Venus::Undef->new;
612              
613             my $result = $lvalue->ge($rvalue);
614              
615             # 1
616              
617             =back
618              
619             =cut
620              
621             =head2 gele
622              
623             gele(any $arg1, any $arg2) (boolean)
624              
625             The gele method performs a I<"greater-than-or-equal-to"> operation on the 1st
626             argument, and I<"lesser-than-or-equal-to"> operation on the 2nd argument.
627              
628             I>
629              
630             =over 4
631              
632             =item gele example 1
633              
634             package main;
635              
636             use Venus::Array;
637             use Venus::Scalar;
638              
639             my $lvalue = Venus::Scalar->new;
640             my $rvalue = Venus::Array->new;
641              
642             my $result = $lvalue->gele($rvalue);
643              
644             # 0
645              
646             =back
647              
648             =over 4
649              
650             =item gele example 2
651              
652             package main;
653              
654             use Venus::Code;
655             use Venus::Scalar;
656              
657             my $lvalue = Venus::Scalar->new;
658             my $rvalue = Venus::Code->new;
659              
660             my $result = $lvalue->gele($rvalue);
661              
662             # 0
663              
664             =back
665              
666             =over 4
667              
668             =item gele example 3
669              
670             package main;
671              
672             use Venus::Float;
673             use Venus::Scalar;
674              
675             my $lvalue = Venus::Scalar->new;
676             my $rvalue = Venus::Float->new;
677              
678             my $result = $lvalue->gele($rvalue);
679              
680             # 0
681              
682             =back
683              
684             =over 4
685              
686             =item gele example 4
687              
688             package main;
689              
690             use Venus::Hash;
691             use Venus::Scalar;
692              
693             my $lvalue = Venus::Scalar->new;
694             my $rvalue = Venus::Hash->new;
695              
696             my $result = $lvalue->gele($rvalue);
697              
698             # 0
699              
700             =back
701              
702             =over 4
703              
704             =item gele example 5
705              
706             package main;
707              
708             use Venus::Number;
709             use Venus::Scalar;
710              
711             my $lvalue = Venus::Scalar->new;
712             my $rvalue = Venus::Number->new;
713              
714             my $result = $lvalue->gele($rvalue);
715              
716             # 0
717              
718             =back
719              
720             =over 4
721              
722             =item gele example 6
723              
724             package main;
725              
726             use Venus::Regexp;
727             use Venus::Scalar;
728              
729             my $lvalue = Venus::Scalar->new;
730             my $rvalue = Venus::Regexp->new;
731              
732             my $result = $lvalue->gele($rvalue);
733              
734             # 0
735              
736             =back
737              
738             =over 4
739              
740             =item gele example 7
741              
742             package main;
743              
744             use Venus::Scalar;
745              
746             my $lvalue = Venus::Scalar->new;
747             my $rvalue = Venus::Scalar->new;
748              
749             my $result = $lvalue->gele($rvalue);
750              
751             # 0
752              
753             =back
754              
755             =over 4
756              
757             =item gele example 8
758              
759             package main;
760              
761             use Venus::Scalar;
762             use Venus::String;
763              
764             my $lvalue = Venus::Scalar->new;
765             my $rvalue = Venus::String->new;
766              
767             my $result = $lvalue->gele($rvalue);
768              
769             # 0
770              
771             =back
772              
773             =over 4
774              
775             =item gele example 9
776              
777             package main;
778              
779             use Venus::Scalar;
780             use Venus::Undef;
781              
782             my $lvalue = Venus::Scalar->new;
783             my $rvalue = Venus::Undef->new;
784              
785             my $result = $lvalue->gele($rvalue);
786              
787             # 0
788              
789             =back
790              
791             =cut
792              
793             =head2 gt
794              
795             gt(any $arg) (boolean)
796              
797             The gt method performs a I<"greater-than"> operation using the argument provided.
798              
799             I>
800              
801             =over 4
802              
803             =item gt example 1
804              
805             package main;
806              
807             use Venus::Array;
808             use Venus::Scalar;
809              
810             my $lvalue = Venus::Scalar->new;
811             my $rvalue = Venus::Array->new;
812              
813             my $result = $lvalue->gt($rvalue);
814              
815             # 0
816              
817             =back
818              
819             =over 4
820              
821             =item gt example 2
822              
823             package main;
824              
825             use Venus::Code;
826             use Venus::Scalar;
827              
828             my $lvalue = Venus::Scalar->new;
829             my $rvalue = Venus::Code->new;
830              
831             my $result = $lvalue->gt($rvalue);
832              
833             # 0
834              
835             =back
836              
837             =over 4
838              
839             =item gt example 3
840              
841             package main;
842              
843             use Venus::Float;
844             use Venus::Scalar;
845              
846             my $lvalue = Venus::Scalar->new;
847             my $rvalue = Venus::Float->new;
848              
849             my $result = $lvalue->gt($rvalue);
850              
851             # 1
852              
853             =back
854              
855             =over 4
856              
857             =item gt example 4
858              
859             package main;
860              
861             use Venus::Hash;
862             use Venus::Scalar;
863              
864             my $lvalue = Venus::Scalar->new;
865             my $rvalue = Venus::Hash->new;
866              
867             my $result = $lvalue->gt($rvalue);
868              
869             # 0
870              
871             =back
872              
873             =over 4
874              
875             =item gt example 5
876              
877             package main;
878              
879             use Venus::Number;
880             use Venus::Scalar;
881              
882             my $lvalue = Venus::Scalar->new;
883             my $rvalue = Venus::Number->new;
884              
885             my $result = $lvalue->gt($rvalue);
886              
887             # 1
888              
889             =back
890              
891             =over 4
892              
893             =item gt example 6
894              
895             package main;
896              
897             use Venus::Regexp;
898             use Venus::Scalar;
899              
900             my $lvalue = Venus::Scalar->new;
901             my $rvalue = Venus::Regexp->new;
902              
903             my $result = $lvalue->gt($rvalue);
904              
905             # 0
906              
907             =back
908              
909             =over 4
910              
911             =item gt example 7
912              
913             package main;
914              
915             use Venus::Scalar;
916              
917             my $lvalue = Venus::Scalar->new;
918             my $rvalue = Venus::Scalar->new;
919              
920             my $result = $lvalue->gt($rvalue);
921              
922             # 0
923              
924             =back
925              
926             =over 4
927              
928             =item gt example 8
929              
930             package main;
931              
932             use Venus::Scalar;
933             use Venus::String;
934              
935             my $lvalue = Venus::Scalar->new;
936             my $rvalue = Venus::String->new;
937              
938             my $result = $lvalue->gt($rvalue);
939              
940             # 1
941              
942             =back
943              
944             =over 4
945              
946             =item gt example 9
947              
948             package main;
949              
950             use Venus::Scalar;
951             use Venus::Undef;
952              
953             my $lvalue = Venus::Scalar->new;
954             my $rvalue = Venus::Undef->new;
955              
956             my $result = $lvalue->gt($rvalue);
957              
958             # 1
959              
960             =back
961              
962             =cut
963              
964             =head2 gtlt
965              
966             gtlt(any $arg1, any $arg2) (boolean)
967              
968             The gtlt method performs a I<"greater-than"> operation on the 1st argument, and
969             I<"lesser-than"> operation on the 2nd argument.
970              
971             I>
972              
973             =over 4
974              
975             =item gtlt example 1
976              
977             package main;
978              
979             use Venus::Array;
980             use Venus::Scalar;
981              
982             my $lvalue = Venus::Scalar->new;
983             my $rvalue = Venus::Array->new;
984              
985             my $result = $lvalue->gtlt($rvalue);
986              
987             # 0
988              
989             =back
990              
991             =over 4
992              
993             =item gtlt example 2
994              
995             package main;
996              
997             use Venus::Code;
998             use Venus::Scalar;
999              
1000             my $lvalue = Venus::Scalar->new;
1001             my $rvalue = Venus::Code->new;
1002              
1003             my $result = $lvalue->gtlt($rvalue);
1004              
1005             # 0
1006              
1007             =back
1008              
1009             =over 4
1010              
1011             =item gtlt example 3
1012              
1013             package main;
1014              
1015             use Venus::Float;
1016             use Venus::Scalar;
1017              
1018             my $lvalue = Venus::Scalar->new;
1019             my $rvalue = Venus::Float->new;
1020              
1021             my $result = $lvalue->gtlt($rvalue);
1022              
1023             # 0
1024              
1025             =back
1026              
1027             =over 4
1028              
1029             =item gtlt example 4
1030              
1031             package main;
1032              
1033             use Venus::Hash;
1034             use Venus::Scalar;
1035              
1036             my $lvalue = Venus::Scalar->new;
1037             my $rvalue = Venus::Hash->new;
1038              
1039             my $result = $lvalue->gtlt($rvalue);
1040              
1041             # 0
1042              
1043             =back
1044              
1045             =over 4
1046              
1047             =item gtlt example 5
1048              
1049             package main;
1050              
1051             use Venus::Number;
1052             use Venus::Scalar;
1053              
1054             my $lvalue = Venus::Scalar->new;
1055             my $rvalue = Venus::Number->new;
1056              
1057             my $result = $lvalue->gtlt($rvalue);
1058              
1059             # 0
1060              
1061             =back
1062              
1063             =over 4
1064              
1065             =item gtlt example 6
1066              
1067             package main;
1068              
1069             use Venus::Regexp;
1070             use Venus::Scalar;
1071              
1072             my $lvalue = Venus::Scalar->new;
1073             my $rvalue = Venus::Regexp->new;
1074              
1075             my $result = $lvalue->gtlt($rvalue);
1076              
1077             # 0
1078              
1079             =back
1080              
1081             =over 4
1082              
1083             =item gtlt example 7
1084              
1085             package main;
1086              
1087             use Venus::Scalar;
1088              
1089             my $lvalue = Venus::Scalar->new;
1090             my $rvalue = Venus::Scalar->new;
1091              
1092             my $result = $lvalue->gtlt($rvalue);
1093              
1094             # 0
1095              
1096             =back
1097              
1098             =over 4
1099              
1100             =item gtlt example 8
1101              
1102             package main;
1103              
1104             use Venus::Scalar;
1105             use Venus::String;
1106              
1107             my $lvalue = Venus::Scalar->new;
1108             my $rvalue = Venus::String->new;
1109              
1110             my $result = $lvalue->gtlt($rvalue);
1111              
1112             # 0
1113              
1114             =back
1115              
1116             =over 4
1117              
1118             =item gtlt example 9
1119              
1120             package main;
1121              
1122             use Venus::Scalar;
1123             use Venus::Undef;
1124              
1125             my $lvalue = Venus::Scalar->new;
1126             my $rvalue = Venus::Undef->new;
1127              
1128             my $result = $lvalue->gtlt($rvalue);
1129              
1130             # 0
1131              
1132             =back
1133              
1134             =cut
1135              
1136             =head2 le
1137              
1138             le(any $arg) (boolean)
1139              
1140             The le method performs a I<"lesser-than-or-equal-to"> operation using the
1141             argument provided.
1142              
1143             I>
1144              
1145             =over 4
1146              
1147             =item le example 1
1148              
1149             package main;
1150              
1151             use Venus::Array;
1152             use Venus::Scalar;
1153              
1154             my $lvalue = Venus::Scalar->new;
1155             my $rvalue = Venus::Array->new;
1156              
1157             my $result = $lvalue->le($rvalue);
1158              
1159             # 0
1160              
1161             =back
1162              
1163             =over 4
1164              
1165             =item le example 2
1166              
1167             package main;
1168              
1169             use Venus::Code;
1170             use Venus::Scalar;
1171              
1172             my $lvalue = Venus::Scalar->new;
1173             my $rvalue = Venus::Code->new;
1174              
1175             my $result = $lvalue->le($rvalue);
1176              
1177             # 1
1178              
1179             =back
1180              
1181             =over 4
1182              
1183             =item le example 3
1184              
1185             package main;
1186              
1187             use Venus::Float;
1188             use Venus::Scalar;
1189              
1190             my $lvalue = Venus::Scalar->new;
1191             my $rvalue = Venus::Float->new;
1192              
1193             my $result = $lvalue->le($rvalue);
1194              
1195             # 0
1196              
1197             =back
1198              
1199             =over 4
1200              
1201             =item le example 4
1202              
1203             package main;
1204              
1205             use Venus::Hash;
1206             use Venus::Scalar;
1207              
1208             my $lvalue = Venus::Scalar->new;
1209             my $rvalue = Venus::Hash->new;
1210              
1211             my $result = $lvalue->le($rvalue);
1212              
1213             # 0
1214              
1215             =back
1216              
1217             =over 4
1218              
1219             =item le example 5
1220              
1221             package main;
1222              
1223             use Venus::Number;
1224             use Venus::Scalar;
1225              
1226             my $lvalue = Venus::Scalar->new;
1227             my $rvalue = Venus::Number->new;
1228              
1229             my $result = $lvalue->le($rvalue);
1230              
1231             # 0
1232              
1233             =back
1234              
1235             =over 4
1236              
1237             =item le example 6
1238              
1239             package main;
1240              
1241             use Venus::Regexp;
1242             use Venus::Scalar;
1243              
1244             my $lvalue = Venus::Scalar->new;
1245             my $rvalue = Venus::Regexp->new;
1246              
1247             my $result = $lvalue->le($rvalue);
1248              
1249             # 1
1250              
1251             =back
1252              
1253             =over 4
1254              
1255             =item le example 7
1256              
1257             package main;
1258              
1259             use Venus::Scalar;
1260              
1261             my $lvalue = Venus::Scalar->new;
1262             my $rvalue = Venus::Scalar->new;
1263              
1264             my $result = $lvalue->le($rvalue);
1265              
1266             # 1
1267              
1268             =back
1269              
1270             =over 4
1271              
1272             =item le example 8
1273              
1274             package main;
1275              
1276             use Venus::Scalar;
1277             use Venus::String;
1278              
1279             my $lvalue = Venus::Scalar->new;
1280             my $rvalue = Venus::String->new;
1281              
1282             my $result = $lvalue->le($rvalue);
1283              
1284             # 0
1285              
1286             =back
1287              
1288             =over 4
1289              
1290             =item le example 9
1291              
1292             package main;
1293              
1294             use Venus::Scalar;
1295             use Venus::Undef;
1296              
1297             my $lvalue = Venus::Scalar->new;
1298             my $rvalue = Venus::Undef->new;
1299              
1300             my $result = $lvalue->le($rvalue);
1301              
1302             # 0
1303              
1304             =back
1305              
1306             =cut
1307              
1308             =head2 lt
1309              
1310             lt(any $arg) (boolean)
1311              
1312             The lt method performs a I<"lesser-than"> operation using the argument provided.
1313              
1314             I>
1315              
1316             =over 4
1317              
1318             =item lt example 1
1319              
1320             package main;
1321              
1322             use Venus::Array;
1323             use Venus::Scalar;
1324              
1325             my $lvalue = Venus::Scalar->new;
1326             my $rvalue = Venus::Array->new;
1327              
1328             my $result = $lvalue->lt($rvalue);
1329              
1330             # 0
1331              
1332             =back
1333              
1334             =over 4
1335              
1336             =item lt example 2
1337              
1338             package main;
1339              
1340             use Venus::Code;
1341             use Venus::Scalar;
1342              
1343             my $lvalue = Venus::Scalar->new;
1344             my $rvalue = Venus::Code->new;
1345              
1346             my $result = $lvalue->lt($rvalue);
1347              
1348             # 1
1349              
1350             =back
1351              
1352             =over 4
1353              
1354             =item lt example 3
1355              
1356             package main;
1357              
1358             use Venus::Float;
1359             use Venus::Scalar;
1360              
1361             my $lvalue = Venus::Scalar->new;
1362             my $rvalue = Venus::Float->new;
1363              
1364             my $result = $lvalue->lt($rvalue);
1365              
1366             # 0
1367              
1368             =back
1369              
1370             =over 4
1371              
1372             =item lt example 4
1373              
1374             package main;
1375              
1376             use Venus::Hash;
1377             use Venus::Scalar;
1378              
1379             my $lvalue = Venus::Scalar->new;
1380             my $rvalue = Venus::Hash->new;
1381              
1382             my $result = $lvalue->lt($rvalue);
1383              
1384             # 0
1385              
1386             =back
1387              
1388             =over 4
1389              
1390             =item lt example 5
1391              
1392             package main;
1393              
1394             use Venus::Number;
1395             use Venus::Scalar;
1396              
1397             my $lvalue = Venus::Scalar->new;
1398             my $rvalue = Venus::Number->new;
1399              
1400             my $result = $lvalue->lt($rvalue);
1401              
1402             # 0
1403              
1404             =back
1405              
1406             =over 4
1407              
1408             =item lt example 6
1409              
1410             package main;
1411              
1412             use Venus::Regexp;
1413             use Venus::Scalar;
1414              
1415             my $lvalue = Venus::Scalar->new;
1416             my $rvalue = Venus::Regexp->new;
1417              
1418             my $result = $lvalue->lt($rvalue);
1419              
1420             # 1
1421              
1422             =back
1423              
1424             =over 4
1425              
1426             =item lt example 7
1427              
1428             package main;
1429              
1430             use Venus::Scalar;
1431              
1432             my $lvalue = Venus::Scalar->new;
1433             my $rvalue = Venus::Scalar->new;
1434              
1435             my $result = $lvalue->lt($rvalue);
1436              
1437             # 0
1438              
1439             =back
1440              
1441             =over 4
1442              
1443             =item lt example 8
1444              
1445             package main;
1446              
1447             use Venus::Scalar;
1448             use Venus::String;
1449              
1450             my $lvalue = Venus::Scalar->new;
1451             my $rvalue = Venus::String->new;
1452              
1453             my $result = $lvalue->lt($rvalue);
1454              
1455             # 0
1456              
1457             =back
1458              
1459             =over 4
1460              
1461             =item lt example 9
1462              
1463             package main;
1464              
1465             use Venus::Scalar;
1466             use Venus::Undef;
1467              
1468             my $lvalue = Venus::Scalar->new;
1469             my $rvalue = Venus::Undef->new;
1470              
1471             my $result = $lvalue->lt($rvalue);
1472              
1473             # 0
1474              
1475             =back
1476              
1477             =cut
1478              
1479             =head2 ne
1480              
1481             ne(any $arg) (boolean)
1482              
1483             The ne method performs a I<"not-equal-to"> operation using the argument provided.
1484              
1485             I>
1486              
1487             =over 4
1488              
1489             =item ne example 1
1490              
1491             package main;
1492              
1493             use Venus::Array;
1494             use Venus::Scalar;
1495              
1496             my $lvalue = Venus::Scalar->new;
1497             my $rvalue = Venus::Array->new;
1498              
1499             my $result = $lvalue->ne($rvalue);
1500              
1501             # 1
1502              
1503             =back
1504              
1505             =over 4
1506              
1507             =item ne example 2
1508              
1509             package main;
1510              
1511             use Venus::Code;
1512             use Venus::Scalar;
1513              
1514             my $lvalue = Venus::Scalar->new;
1515             my $rvalue = Venus::Code->new;
1516              
1517             my $result = $lvalue->ne($rvalue);
1518              
1519             # 1
1520              
1521             =back
1522              
1523             =over 4
1524              
1525             =item ne example 3
1526              
1527             package main;
1528              
1529             use Venus::Float;
1530             use Venus::Scalar;
1531              
1532             my $lvalue = Venus::Scalar->new;
1533             my $rvalue = Venus::Float->new;
1534              
1535             my $result = $lvalue->ne($rvalue);
1536              
1537             # 1
1538              
1539             =back
1540              
1541             =over 4
1542              
1543             =item ne example 4
1544              
1545             package main;
1546              
1547             use Venus::Hash;
1548             use Venus::Scalar;
1549              
1550             my $lvalue = Venus::Scalar->new;
1551             my $rvalue = Venus::Hash->new;
1552              
1553             my $result = $lvalue->ne($rvalue);
1554              
1555             # 1
1556              
1557             =back
1558              
1559             =over 4
1560              
1561             =item ne example 5
1562              
1563             package main;
1564              
1565             use Venus::Number;
1566             use Venus::Scalar;
1567              
1568             my $lvalue = Venus::Scalar->new;
1569             my $rvalue = Venus::Number->new;
1570              
1571             my $result = $lvalue->ne($rvalue);
1572              
1573             # 1
1574              
1575             =back
1576              
1577             =over 4
1578              
1579             =item ne example 6
1580              
1581             package main;
1582              
1583             use Venus::Regexp;
1584             use Venus::Scalar;
1585              
1586             my $lvalue = Venus::Scalar->new;
1587             my $rvalue = Venus::Regexp->new;
1588              
1589             my $result = $lvalue->ne($rvalue);
1590              
1591             # 1
1592              
1593             =back
1594              
1595             =over 4
1596              
1597             =item ne example 7
1598              
1599             package main;
1600              
1601             use Venus::Scalar;
1602              
1603             my $lvalue = Venus::Scalar->new;
1604             my $rvalue = Venus::Scalar->new;
1605              
1606             my $result = $lvalue->ne($rvalue);
1607              
1608             # 0
1609              
1610             =back
1611              
1612             =over 4
1613              
1614             =item ne example 8
1615              
1616             package main;
1617              
1618             use Venus::Scalar;
1619             use Venus::String;
1620              
1621             my $lvalue = Venus::Scalar->new;
1622             my $rvalue = Venus::String->new;
1623              
1624             my $result = $lvalue->ne($rvalue);
1625              
1626             # 1
1627              
1628             =back
1629              
1630             =over 4
1631              
1632             =item ne example 9
1633              
1634             package main;
1635              
1636             use Venus::Scalar;
1637             use Venus::Undef;
1638              
1639             my $lvalue = Venus::Scalar->new;
1640             my $rvalue = Venus::Undef->new;
1641              
1642             my $result = $lvalue->ne($rvalue);
1643              
1644             # 1
1645              
1646             =back
1647              
1648             =cut
1649              
1650             =head2 tv
1651              
1652             tv(any $arg) (boolean)
1653              
1654             The tv method performs a I<"type-and-value-equal-to"> operation using argument
1655             provided.
1656              
1657             I>
1658              
1659             =over 4
1660              
1661             =item tv example 1
1662              
1663             package main;
1664              
1665             use Venus::Array;
1666             use Venus::Scalar;
1667              
1668             my $lvalue = Venus::Scalar->new;
1669             my $rvalue = Venus::Array->new;
1670              
1671             my $result = $lvalue->tv($rvalue);
1672              
1673             # 0
1674              
1675             =back
1676              
1677             =over 4
1678              
1679             =item tv example 2
1680              
1681             package main;
1682              
1683             use Venus::Code;
1684             use Venus::Scalar;
1685              
1686             my $lvalue = Venus::Scalar->new;
1687             my $rvalue = Venus::Code->new;
1688              
1689             my $result = $lvalue->tv($rvalue);
1690              
1691             # 0
1692              
1693             =back
1694              
1695             =over 4
1696              
1697             =item tv example 3
1698              
1699             package main;
1700              
1701             use Venus::Float;
1702             use Venus::Scalar;
1703              
1704             my $lvalue = Venus::Scalar->new;
1705             my $rvalue = Venus::Float->new;
1706              
1707             my $result = $lvalue->tv($rvalue);
1708              
1709             # 0
1710              
1711             =back
1712              
1713             =over 4
1714              
1715             =item tv example 4
1716              
1717             package main;
1718              
1719             use Venus::Hash;
1720             use Venus::Scalar;
1721              
1722             my $lvalue = Venus::Scalar->new;
1723             my $rvalue = Venus::Hash->new;
1724              
1725             my $result = $lvalue->tv($rvalue);
1726              
1727             # 0
1728              
1729             =back
1730              
1731             =over 4
1732              
1733             =item tv example 5
1734              
1735             package main;
1736              
1737             use Venus::Number;
1738             use Venus::Scalar;
1739              
1740             my $lvalue = Venus::Scalar->new;
1741             my $rvalue = Venus::Number->new;
1742              
1743             my $result = $lvalue->tv($rvalue);
1744              
1745             # 0
1746              
1747             =back
1748              
1749             =over 4
1750              
1751             =item tv example 6
1752              
1753             package main;
1754              
1755             use Venus::Regexp;
1756             use Venus::Scalar;
1757              
1758             my $lvalue = Venus::Scalar->new;
1759             my $rvalue = Venus::Regexp->new;
1760              
1761             my $result = $lvalue->tv($rvalue);
1762              
1763             # 0
1764              
1765             =back
1766              
1767             =over 4
1768              
1769             =item tv example 7
1770              
1771             package main;
1772              
1773             use Venus::Scalar;
1774              
1775             my $lvalue = Venus::Scalar->new;
1776             my $rvalue = Venus::Scalar->new;
1777              
1778             my $result = $lvalue->tv($rvalue);
1779              
1780             # 1
1781              
1782             =back
1783              
1784             =over 4
1785              
1786             =item tv example 8
1787              
1788             package main;
1789              
1790             use Venus::Scalar;
1791             use Venus::String;
1792              
1793             my $lvalue = Venus::Scalar->new;
1794             my $rvalue = Venus::String->new;
1795              
1796             my $result = $lvalue->tv($rvalue);
1797              
1798             # 0
1799              
1800             =back
1801              
1802             =over 4
1803              
1804             =item tv example 9
1805              
1806             package main;
1807              
1808             use Venus::Scalar;
1809             use Venus::Undef;
1810              
1811             my $lvalue = Venus::Scalar->new;
1812             my $rvalue = Venus::Undef->new;
1813              
1814             my $result = $lvalue->tv($rvalue);
1815              
1816             # 0
1817              
1818             =back
1819              
1820             =cut
1821              
1822             =head1 OPERATORS
1823              
1824             This package overloads the following operators:
1825              
1826             =cut
1827              
1828             =over 4
1829              
1830             =item operation: C<(${})>
1831              
1832             This package overloads the C<${}> operator.
1833              
1834             B
1835              
1836             package main;
1837              
1838             use Venus::Scalar;
1839              
1840             my $scalar = Venus::Scalar->new(\*STDOUT);
1841              
1842             my $value = $$scalar;
1843              
1844             # *::STDOUT
1845              
1846             =back
1847              
1848             =over 4
1849              
1850             =item operation: C<(*{})>
1851              
1852             This package overloads the C<*{}> operator.
1853              
1854             B
1855              
1856             package main;
1857              
1858             use Venus::Scalar;
1859              
1860             my $scalar = Venus::Scalar->new(\*STDOUT);
1861              
1862             my $value = *$scalar;
1863              
1864             # *::STDOUT
1865              
1866             =back
1867              
1868             =head1 AUTHORS
1869              
1870             Awncorp, C
1871              
1872             =cut
1873              
1874             =head1 LICENSE
1875              
1876             Copyright (C) 2000, Awncorp, C.
1877              
1878             This program is free software, you can redistribute it and/or modify it under
1879             the terms of the Apache license version 2.0.
1880              
1881             =cut