Trying to splice....

Trying to splice....

am 09.04.2008 21:14:15 von lokeey

.....@dump into the middle of @players without removing any elements
from @players.

so i've done the following...

#!/usr/bin/perl -w

# extracting elements using splice

@players = ("ryno", "fukudome", "grace", "banks", "santo",
"soto", "marmol", "sori", "bigZ", "pie");
@dump = splice(@players, 0,2, "theriot", "sosa");
print "The original array is @players\n";
print "The players dumped after the splice are: @dump.\n";
print "The spliced array is now @players.\n";


....but I'm not sure I'm doing the splice correct, because the first
line prints all the players including the ones stated in @dump. should
i be using negative offset or length?


--
To unsubscribe, e-mail: beginners-unsubscribe@perl.org
For additional commands, e-mail: beginners-help@perl.org
http://learn.perl.org/

Re: Trying to splice....

am 10.04.2008 16:03:18 von Gunnar Hjalmarsson

lokeey@gmail.com wrote:
> ....@dump into the middle of @players without removing any elements
> from @players.
>
> so i've done the following...
>
> #!/usr/bin/perl -w
>
> # extracting elements using splice
>
> @players = ("ryno", "fukudome", "grace", "banks", "santo",
> "soto", "marmol", "sori", "bigZ", "pie");
> @dump = splice(@players, 0,2, "theriot", "sosa");
> print "The original array is @players\n";
> print "The players dumped after the splice are: @dump.\n";
> print "The spliced array is now @players.\n";
>
>
> ...but I'm not sure I'm doing the splice correct, because the first
> line prints all the players including the ones stated in @dump. should
> i be using negative offset or length?

Your post is confusing. Please state both the exact output you get and
the expected output.

--
Gunnar Hjalmarsson
Email: http://www.gunnar.cc/cgi-bin/contact.pl

--
To unsubscribe, e-mail: beginners-unsubscribe@perl.org
For additional commands, e-mail: beginners-help@perl.org
http://learn.perl.org/

Re: Trying to splice....

am 10.04.2008 16:19:41 von daggerquill unknown

T24gV2VkLCBBcHIgOSwgMjAwOCBhdCAzOjE0IFBNLCBsb2tlZXlAZ21haWwu Y29tIDxsb2tlZXlA
Z21haWwuY29tPiB3cm90ZToKPiAuLi4uQGR1bXAgaW50byB0aGUgbWlkZGxl IG9mIEBwbGF5ZXJz
IHdpdGhvdXQgcmVtb3ZpbmcgYW55IGVsZW1lbnRzCj4gIGZyb20gQHBsYXll cnMuCj4KPiAgc28g
aSd2ZSBkb25lIHRoZSBmb2xsb3dpbmcuLi4KPgo+ICAjIS91c3IvYmluL3Bl cmwgLXcKPgo+ICAj
IGV4dHJhY3RpbmcgZWxlbWVudHMgdXNpbmcgc3BsaWNlCj4KPiAgQHBsYXll cnMgPSAoInJ5bm8i
LCAiZnVrdWRvbWUiLCAiZ3JhY2UiLCAiYmFua3MiLCAic2FudG8iLAo+ICAg ICAgICAgICAgICJz
b3RvIiwgIm1hcm1vbCIsICJzb3JpIiwgImJpZ1oiLCAicGllIik7Cj4gIEBk dW1wID0gc3BsaWNl
KEBwbGF5ZXJzLCAwLDIsICJ0aGVyaW90IiwgInNvc2EiKTsKPiAgcHJpbnQg IlRoZSBvcmlnaW5h
bCBhcnJheSBpcyBAcGxheWVyc1xuIjsKPiAgcHJpbnQgIlRoZSBwbGF5ZXJz IGR1bXBlZCBhZnRl
ciB0aGUgc3BsaWNlIGFyZTogQGR1bXAuXG4iOwo+ICBwcmludCAiVGhlIHNw bGljZWQgYXJyYXkg
aXMgbm93IEBwbGF5ZXJzLlxuIjsKPgo+Cj4gIC4uLmJ1dCBJJ20gbm90IHN1 cmUgSSdtIGRvaW5n
IHRoZSBzcGxpY2UgY29ycmVjdCwgYmVjYXVzZSB0aGUgZmlyc3QKPiAgbGlu ZSBwcmludHMgYWxs
IHRoZSBwbGF5ZXJzIGluY2x1ZGluZyB0aGUgb25lcyBzdGF0ZWQgaW4gQGR1 bXAuIHNob3VsZAo+
ICBpIGJlIHVzaW5nIG5lZ2F0aXZlIG9mZnNldCBvciBsZW5ndGg/Cj4KCllv dXIgZmlyc3QgcHJp
bnQgaXMgYWZ0ZXIgdGhlIHNwbGljZToKCkBwbGF5ZXJzID0gKCJyeW5vIiwg ImZ1a3Vkb21lIiwg
ImdyYWNlIiwgImJhbmtzIiwgInNhbnRvIiwKICAgICAgICAgICAic290byIs ICJtYXJtb2wiLCAi
c29yaSIsICJiaWdaIiwgInBpZSIpOwpwcmludCAiVGhlIG9yaWdpbmFsIGFy cmF5IGlzIEBwbGF5
ZXJzXG4iOyAjIDw9PSBwcmludCBiZWZvcmUgc3BsaWNpbmcKQGR1bXAgPSBz cGxpY2UoQHBsYXll
cnMsIDAsMiwgInRoZXJpb3QiLCAic29zYSIpOwpwcmludCAiVGhlIHBsYXll cnMgZHVtcGVkIGJ5
IHRoZSBzcGxpY2UgYXJlOiBAZHVtcC5cbiI7CnByaW50ICJUaGUgc3BsaWNl ZCBhcnJheSBpcyBu
b3cgQHBsYXllcnMuXG4iOwoKSFRILAoKLS0gamF5Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoaXMgZW1haWwgYW5kIGF0dGFj aG1lbnQocyk6IFsg
XSBibG9nYWJsZTsgWyB4IF0gYXNrIGZpcnN0OyBbIF0KcHJpdmF0ZSBhbmQg Y29uZmlkZW50aWFs
CgpkYWdnZXJxdWlsbCBbYXRdIGdtYWlsIFtkb3RdIGNvbQpodHRwOi8vd3d3 LnR1YXcuY29tIGh0
dHA6Ly93d3cuZG93bmxvYWRzcXVhZC5jb20gaHR0cDovL3d3dy5lbmdhdGlr aS5vcmcKCnZhbHVl
cyBvZiDiIHdpbGwgZ2l2ZSByaXNlIHRvIGRvbSEK

Re: Trying to splice....

am 10.04.2008 16:26:24 von lokeey

------=_Part_29195_26291329.1207837584763
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: base64
Content-Disposition: inline

WWVhaC4uLkkgYWN0dWFsbHkgZmlndXJlZCBpdCBvdXQgbGFzdCBuaWdodCwg YW5kIGNvdWxkbid0
IGZpbmQgbXkgcG9zdCB0bwpzZW5kIG91dCB0aGUgY29ycmVjdGlvbi4gYnV0 IHRoYW5rcyBmb3Ig
dGhlIGFzc2lzdGFuY2UuCgpteSBmaW5hbCBjb2RlIGxvb2tzIGxpa2UgdGhp cy4uCgojIS91c3Iv
YmluL3BlcmwgLXcKCiMgZXh0cmFjdGluZyBlbGVtZW50cyB1c2luZyBzcGxp Y2UKCkBwbGF5ZXJz
ID0gKCJyeW5vIiwgImZ1a3Vkb21lIiwgImdyYWNlIiwgImJhbmtzIiwgInNh bnRvIiwKICAgICAg
ICAgICAgInNvdG8iLCAibWFybW9sIiwgInNvcmkiLCAiYmlnWiIsICJwaWUi KTsKCnByaW50ICJU
aGUgb3JpZ2luYWwgYXJyYXkgaXMgQHBsYXllcnNcbiI7CgpAZHVtcCA9IHNw bGljZShAcGxheWVy
cywgNCwwLCAidGhlcmlvdCIsICJzb3NhIik7CgpwcmludCAiVGhlIHBsYXll cnMgZHVtcGVkIGFm
dGVyIHRoZSBzcGxpY2UgYXJlOiBAZHVtcC5cbiI7CgpwcmludCAiVGhlIHNw bGljZWQgYXJyYXkg
aXMgbm93IEBwbGF5ZXJzLlxuIjsKCgoKMjAwOC80LzEwIEpheSBTYXZhZ2Ug PGRhZ2dlcnF1aWxs
QGdtYWlsLmNvbT46Cgo+IE9uIFdlZCwgQXByIDksIDIwMDggYXQgMzoxNCBQ TSwgbG9rZWV5QGdt
YWlsLmNvbSA8bG9rZWV5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiAuLi4uQGR1 bXAgaW50byB0aGUg
bWlkZGxlIG9mIEBwbGF5ZXJzIHdpdGhvdXQgcmVtb3ZpbmcgYW55IGVsZW1l bnRzCj4gPiAgZnJv
bSBAcGxheWVycy4KPiA+Cj4gPiAgc28gaSd2ZSBkb25lIHRoZSBmb2xsb3dp bmcuLi4KPiA+Cj4g
PiAgIyEvdXNyL2Jpbi9wZXJsIC13Cj4gPgo+ID4gICMgZXh0cmFjdGluZyBl bGVtZW50cyB1c2lu
ZyBzcGxpY2UKPiA+Cj4gPiAgQHBsYXllcnMgPSAoInJ5bm8iLCAiZnVrdWRv bWUiLCAiZ3JhY2Ui
LCAiYmFua3MiLCAic2FudG8iLAo+ID4gICAgICAgICAgICAgInNvdG8iLCAi bWFybW9sIiwgInNv
cmkiLCAiYmlnWiIsICJwaWUiKTsKPiA+ICBAZHVtcCA9IHNwbGljZShAcGxh eWVycywgMCwyLCAi
dGhlcmlvdCIsICJzb3NhIik7Cj4gPiAgcHJpbnQgIlRoZSBvcmlnaW5hbCBh cnJheSBpcyBAcGxh
eWVyc1xuIjsKPiA+ICBwcmludCAiVGhlIHBsYXllcnMgZHVtcGVkIGFmdGVy IHRoZSBzcGxpY2Ug
YXJlOiBAZHVtcC5cbiI7Cj4gPiAgcHJpbnQgIlRoZSBzcGxpY2VkIGFycmF5 IGlzIG5vdyBAcGxh
eWVycy5cbiI7Cj4gPgo+ID4KPiA+ICAuLi5idXQgSSdtIG5vdCBzdXJlIEkn bSBkb2luZyB0aGUg
c3BsaWNlIGNvcnJlY3QsIGJlY2F1c2UgdGhlIGZpcnN0Cj4gPiAgbGluZSBw cmludHMgYWxsIHRo
ZSBwbGF5ZXJzIGluY2x1ZGluZyB0aGUgb25lcyBzdGF0ZWQgaW4gQGR1bXAu IHNob3VsZAo+ID4g
IGkgYmUgdXNpbmcgbmVnYXRpdmUgb2Zmc2V0IG9yIGxlbmd0aD8KPiA+Cj4K PiBZb3VyIGZpcnN0
IHByaW50IGlzIGFmdGVyIHRoZSBzcGxpY2U6Cj4KPiBAcGxheWVycyA9ICgi cnlubyIsICJmdWt1
ZG9tZSIsICJncmFjZSIsICJiYW5rcyIsICJzYW50byIsCj4gICAgICAgICAg ICJzb3RvIiwgIm1h
cm1vbCIsICJzb3JpIiwgImJpZ1oiLCAicGllIik7Cj4gcHJpbnQgIlRoZSBv cmlnaW5hbCBhcnJh
eSBpcyBAcGxheWVyc1xuIjsgIyA8PT0gcHJpbnQgYmVmb3JlIHNwbGljaW5n Cj4gQGR1bXAgPSBz
cGxpY2UoQHBsYXllcnMsIDAsMiwgInRoZXJpb3QiLCAic29zYSIpOwo+IHBy aW50ICJUaGUgcGxh
eWVycyBkdW1wZWQgYnkgdGhlIHNwbGljZSBhcmU6IEBkdW1wLlxuIjsKPiBw cmludCAiVGhlIHNw
bGljZWQgYXJyYXkgaXMgbm93IEBwbGF5ZXJzLlxuIjsKPgo+IEhUSCwKPgo+ IC0tIGpheQo+IC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCj4gVGhpcyBl
bWFpbCBhbmQgYXR0YWNobWVudChzKTogWyBdIGJsb2dhYmxlOyBbIHggXSBh c2sgZmlyc3Q7IFsg
XQo+IHByaXZhdGUgYW5kIGNvbmZpZGVudGlhbAo+Cj4gZGFnZ2VycXVpbGwg W2F0XSBnbWFpbCBb
ZG90XSBjb20KPiBodHRwOi8vd3d3LnR1YXcuY29tIGh0dHA6Ly93d3cuZG93 bmxvYWRzcXVhZC5j
b20gaHR0cDovL3d3dy5lbmdhdGlraS5vcmcKPgo+IHZhbHVlcyBvZiDOsiB3 aWxsIGdpdmUgcmlz
ZSB0byBkb20hCj4KCgoKLS0gCiJJdCdzIG5leCB5ZWFyISIK
------=_Part_29195_26291329.1207837584763--

Re: Trying to splice....

am 10.04.2008 16:56:28 von lokeey

On Apr 10, 9:03 am, nore...@gunnar.cc (Gunnar Hjalmarsson) wrote:
> lok...@gmail.com wrote:
> > ....@dump into the middle of @players without removing any elements
> > from @players.
>
> > so i've done the following...
>
> > #!/usr/bin/perl -w
>
> > # extracting elements using splice
>
> > @players = ("ryno", "fukudome", "grace", "banks", "santo",
> > "soto", "marmol", "sori", "bigZ", "pie");
> > @dump = splice(@players, 0,2, "theriot", "sosa");
> > print "The original array is @players\n";
> > print "The players dumped after the splice are: @dump.\n";
> > print "The spliced array is now @players.\n";
>
> > ...but I'm not sure I'm doing the splice correct, because the first
> > line prints all the players including the ones stated in @dump. should
> > i be using negative offset or length?
>
> Your post is confusing. Please state both the exact output you get and
> the expected output.
>
> --
> Gunnar Hjalmarsson
> Email:http://www.gunnar.cc/cgi-bin/contact.pl

So basically, I was trying to figure out how could you splice @dump
into the middle of @players without removing any elements of @players,
but I finally figured it out last night, I just couldn't find the
original post to let every one know.

my code....

#!/usr/bin/perl -w

# extracting elements using splice

@players = ("ryno", "fukudome", "grace", "banks", "santo",
"soto", "marmol", "sori", "bigZ", "pie");

print "The original array is @players\n";

@dump = splice(@players, 4,0, "theriot", "sosa");

print "The players dumped after the splice are: @dump.\n";

print "The spliced array is now @players.\n";

$ ./splice.pl
The original array is ryno fukudome grace banks santo soto marmol sori
bigZ pie
The players dumped after the splice are: .
The spliced array is now ryno fukudome grace banks theriot sosa santo
soto marmol sori bigZ pie.



--
To unsubscribe, e-mail: beginners-unsubscribe@perl.org
For additional commands, e-mail: beginners-help@perl.org
http://learn.perl.org/

Re: Trying to splice....

am 10.04.2008 19:22:05 von krahnj

lokeey@gmail.com wrote:
> ....@dump into the middle of @players without removing any elements
> from @players.
>
> so i've done the following...
>
> #!/usr/bin/perl -w
>
> # extracting elements using splice
>
> @players = ("ryno", "fukudome", "grace", "banks", "santo",
> "soto", "marmol", "sori", "bigZ", "pie");
> @dump = splice(@players, 0,2, "theriot", "sosa");

splice() modifies @players, starting at element 0 ("ryno"), with a
length of 2 and replace those with the list ("theriot", "sosa") and
return the elements that were removed ("ryno", "fukudome").


> print "The original array is @players\n";

At this point @players has already been modified so it is not the
original array.


> print "The players dumped after the splice are: @dump.\n";
> print "The spliced array is now @players.\n";
>
>
> ...but I'm not sure I'm doing the splice correct, because the first
> line prints all the players including the ones stated in @dump. should
> i be using negative offset or length?

If you want to put ("theriot", "sosa") into the middle of @players
without removing any of its elements then you have to use a length of 0.

splice @players, 0, 0, "theriot", "sosa";

Which could also be written as:

unshift @players, "theriot", "sosa";



John
--
Perl isn't a toolbox, but a small machine shop where you
can special-order certain sorts of tools at low cost and
in short order. -- Larry Wall

--
To unsubscribe, e-mail: beginners-unsubscribe@perl.org
For additional commands, e-mail: beginners-help@perl.org
http://learn.perl.org/