InglesPransesEspanyol

OnWorks favicon

PDL::FAQp - Online sa Cloud

Patakbuhin ang PDL::FAQp sa OnWorks na libreng hosting provider sa Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

Ito ang command na PDL::FAQp na maaaring patakbuhin sa OnWorks na libreng hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

PROGRAMA:

NAME


PDL::FAQ - Mga madalas itanong tungkol sa PDL

VERSION


Kasalukuyang bersyon ng FAQ: 1.004

DESCRIPTION


Ito ang bersyon 1.004 ng PDL FAQ, isang koleksyon ng mga madalas itanong tungkol sa
PDL - ang Perl Data Language.

TUNGKOL ITO DOKUMENTO


Q: 1.1 Saan sa mahanap ito dokumento
Mahahanap mo ang pinakabagong bersyon ng dokumentong ito sa
<http://pdl.perl.org/?docs=FAQ&title=Frequently%20Asked%20Questions> .

Q: 1.2 Gaano sa mag-ambag sa ito dokumento
Ito ay isang makabuluhang reworked na bersyon ng PDL FAQ. Tulad ng maraming mga error na maaaring magkaroon
pumasok at maraming update ang maaaring hindi nakapasok. Tahasang hinihikayat kang hayaan ito
alam namin ang tungkol sa mga tanong na sa tingin mo ay dapat sagutin sa dokumentong ito ngunit sa kasalukuyan
ay hindi.

Katulad nito, kung sa tingin mo ay hindi malinaw ang mga bahagi ng dokumentong ito, mangyaring sabihin sa tagapangasiwa ng FAQ
tungkol doon. Kung saan ang isang tiyak na sagot ay kinuha nang buo mula sa isang tao na nagpo-post ng pagiging may-akda
dapat ipahiwatig, ipaalam sa tagapangasiwa ng FAQ kung hindi. Para sa higit pang pangkalahatang impormasyon
ang tahasang pagkilala ay hindi ginawa sa teksto, ngunit sa halip mayroong isang hindi kumpletong listahan ng
mga kontribyutor sa dulo ng dokumentong ito. Mangyaring makipag-ugnayan sa tagapangasiwa ng FAQ kung sa palagay mo
mahirap na ginawa ng.

Ipadala ang iyong mga komento, karagdagan, mungkahi o pagwawasto sa PDL mailing list sa
[protektado ng email]. Tingnan ang Q: 3.2 sa ibaba para sa mga tagubilin kung paano sumali sa pagpapadala ng koreo
mga listahan.

PANGKALAHATAN KATANUNGAN


Q: 2.1 Ano is PDL ?
Ang ibig sabihin ng PDL ay Perl data Wika . Upang sabihin ito sa mga salita ni Karl Glazebrook,
nagpasimula ng proyekto ng PDL:

Ang konsepto ng PDL ay upang bigyan ang karaniwang perl5 ng kakayahan
upang COMPACTLY mag-imbak at MABILIS na manipulahin ang malaki
N-dimensional na data set na siyang tinapay at mantikilya
ng scientific computing. hal $a=$b+$c ay maaaring magdagdag ng dalawa
2048x2048 na mga larawan sa loob lamang ng isang bahagi ng isang segundo.

Nagbibigay ito ng maraming kapaki-pakinabang na pag-andar para sa siyentipikong at numeric na pagsusuri.

Para sa mga mambabasa na pamilyar sa iba pang mga pang-agham na pakete ng pagsusuri ng data, maaaring makatulong ito
idagdag na ang PDL sa maraming aspeto ay katulad ng IDL, MATLAB at mga katulad na pakete. Gayunpaman, ito
sinusubukang pagbutihin ang ilang mga isyu na napagtanto (ng mga may-akda ng PDL) bilang
mga pagkukulang ng mga umiiral na pakete.

Q: 2.2 Sino suporta PDL? Sino develops ito?
Ang PDL ay sinusuportahan ng mga gumagamit nito. Ang pangkalahatang impormal na suporta para sa PDL ay ibinibigay sa pamamagitan ng
PDL mailing list ([protektado ng email] , tingnan sa ibaba).

Bilang isang extension ng Perl (tingnan ang Q: 2.5 sa ibaba) ito ay nakatuon sa ideya ng libre at bukas
pag-unlad na inihain ng komunidad ng Perl. Ang PDL ay at aktibong binuo ng a
maluwag na pangkat ng mga tao sa buong mundo na nag-uugnay sa kanilang mga aktibidad sa pamamagitan ng
PDL development mailing list ([protektado ng email] , tingnan ang Q: 3.2 sa ibaba). kung ikaw
nais na sumali sa patuloy na pagsisikap na mapabuti ang PDL mangyaring sumali sa listahang ito.

Q: 2.3 Bakit pa isa pa data Wika ?
Mayroong talagang ilang mga kadahilanan at ang bawat isa ay dapat magpasya para sa kanyang sarili kung alin ang
pinakamahalaga:

· Ang PDL ay "libreng software". Iniisip ng mga may-akda ng PDL na ang konseptong ito ay may ilan
mga pakinabang: lahat ay may access sa mga mapagkukunan -> mas mahusay na pag-debug, madaling ibagay
sa iyong sariling mga pangangailangan, extensible para sa iyong mga layunin, atbp... Kung ihahambing sa komersyal
mga pakete tulad ng MATLAB at IDL ito ay may malaking kahalagahan para sa mga manggagawa na
gustong gumawa ng ilang trabaho sa bahay at hindi kayang bayaran ang malaking halaga para makabili ng komersyal
mga pakete para sa personal na paggamit.

· Ang PDL ay nakabatay sa isang malakas at mahusay na idinisenyong scripting language: Perl. Salungat sa
iba pang mga wikang pang-agham/numeric data analysis na ito ay idinisenyo gamit ang
mga tampok ng isang napatunayang wika sa halip na lumaki mula sa simula.
Ang pagtukoy sa mga istruktura ng kontrol habang ang mga tampok ay idinagdag sa panahon ng pag-unlad ay humahantong sa
mga wika na kadalasang mukhang clumsy at hindi maganda ang plano para sa karamihan ng mga umiiral nang package na may
katulad na saklaw ng PDL.

· Ang paggamit ng Perl bilang batayan ng isang PDL programmer ay mayroong lahat ng makapangyarihang katangian ng Perl sa kanya
kamay, sa simula pa lang. Kabilang dito ang mga regular na expression, mga associative array
(hashes), mahusay na dinisenyo na mga interface sa operating system, network, atbp. Karanasan
ay nagpakita na kahit na sa pangunahing numerically oriented programming ito ay madalas na labis
madaling gamitin kung mayroon kang madaling access sa malakas na semi-numerical o ganap na hindi numerical
functionality din. Halimbawa, maaaring gusto mong ialok ang mga resulta ng a
kumplikadong pagkalkula bilang isang proseso ng server sa iba pang mga proseso sa network, marahil
direktang tumatanggap ng input mula sa ibang mga proseso sa network. Gamit ang Perl at umiiral na
Ang mga pakete ng extension ng Perl na mga bagay na tulad nito ay walang problema sa lahat (at lahat ng ito ay magkasya
sa iyong "PDL script").

· Napakadaling extensibility at interoperability dahil ang PDL ay isang extension ng Perl;
Ang suporta sa pagpapaunlad para sa mga extension ng Perl ay isang mahalagang bahagi ng Perl at mayroon
marami nang extension sa karaniwang Perl na malayang magagamit sa network.

· Mga integral na feature ng wika ng Perl (mga regular na expression, hash, object modules)
napakalawak na pinadali ang pagbuo at pagpapatupad ng mga pangunahing konsepto ng PDL. Isa sa
ang pinakakapansin-pansin na mga halimbawa para sa puntong ito ay malamang na PDL::PP (tingnan ang Q: 6.16 sa ibaba), isang
code generator/parser/pre-processor na bumubuo ng mga function ng PDL mula sa maikli
paglalarawan.

· Wala sa mga umiiral na wika ng data ang sumusunod sa mga panuntunan sa wikang Perl, na kung saan ang mga may-akda
matibay na naniniwala sa:

· TIMTOWTDI: Mayroong higit sa isang paraan upang gawin ito. Ang mga minimalistang wika ay
kawili-wili para sa mga computer scientist, ngunit para sa mga user, kaunting redundancy
ginagawang mas madaling makayanan ang mga bagay at pinapayagan ang mga indibidwal na istilo ng programming -
gaya ng pagsasalita ng mga tao sa iba't ibang paraan. Para sa maraming tao ito ay walang alinlangan na magiging isang
dahilan para maiwasan ang PDL ;)

· Ang mga simpleng bagay ay simple, kumplikadong mga bagay na posible: Mga bagay na madalas gawin
dapat ay madaling gawin sa wika, samantalang ang mga bagay na bihirang gawin ay hindi dapat masyadong
masalimuot.

Ang lahat ng umiiral na wika ay lumalabag sa kahit isa sa mga panuntunang ito.

· Bilang isang proyekto para sa hinaharap na PDL ay dapat na makagamit ng mga super feature ng computer, hal
mga kakayahan ng vector/parallel processing, GPGPU acceleration. Ito ay malamang na
nakamit sa pamamagitan ng pagkakaroon ng PDL::PP (tingnan ang Q: 6.16 sa ibaba) na bumuo ng naaangkop na code sa naturang
mga arkitektura upang samantalahin ang mga tampok na ito.

· [ punan ang iyong personal na 111 paboritong dahilan dito...]

Q: 2.4 Ano is PDL mahusay para ?
Kung sakaling hindi mo pa alam kung ano ang mga pangunahing tampok ng PDL at kung ano ang magagawa ng isa
kasama nila, narito ang isang (kinakailangang pumipili) na listahan ng mga pangunahing tampok:

Ang PDL ay angkop para sa matrix computations, pangkalahatang paghawak ng multidimensional na data,
pagpoproseso ng imahe, pangkalahatang siyentipikong pagtutuos, mga numerical na aplikasyon. Sinusuportahan nito ang I/O
para sa maraming sikat na format ng larawan at data, 1D (line plot), 2D (mga larawan) at 3D (volume
visualization, surface plots sa pamamagitan ng OpenGL - halimbawa, ipinatupad gamit ang Mesa o video
card OpenGL drivers), mga kakayahan sa pagpapakita ng graphics at nagpapatupad ng maraming numero at
semi-numerical na mga algorithm.

Sa pamamagitan ng makapangyarihang pre-processor madali ding i-interface ang Perl sa iyong paboritong C
mga gawain, higit pa sa ibaba.

Q: 2.5 Ano is ang koneksyon sa pagitan ng PDL at Perl ?
Ang PDL ay isang Perl5 extension package. Dahil dito kailangan nito ng isang umiiral na pag-install ng Perl5 (tingnan
sa ibaba) upang tumakbo. Higit pa rito, karamihan sa PDL ay nakasulat sa Perl (+ ilang pangunahing pag-andar na
ay nakasulat sa C). Ang mga PDL program ay (syntactically) na mga Perl script lang na nangyayaring ginagamit
ilan sa mga functionality na ipinatupad ng package na "PDL".

Q: 2.6 Ano do I kailangan sa tumakbo PDL on my makina ?
Dahil ang PDL ay isang pakete lamang ng Perl5 kailangan mo muna sa lahat ng pag-install ng Perl5 sa iyong
makina. Sa pagsulat na ito, nangangailangan ang PDL ng bersyon 5.8 ng perl, o mas mataas. Karagdagang informasiyon
kung saan at kung paano makakuha ng pag-install ng Perl ay makikita sa home page ng Perl
<http://www.perl.org> at sa maraming site ng CPAN (kung hindi mo alam kung ano CPAN ay, suriin ang
sagot sa susunod na tanong).

Upang bumuo ng PDL kailangan mo rin ng gumaganang C compiler, suporta para sa Xsubs, at ang package
Mga Extutil::MakeMaker. Kung wala kang compiler, maaaring mayroong binary distribution
available, tingnan ang "Mga binary distribution" sa ibaba.

Kung maaari mong (o hindi) paandarin ang PDL sa isang bagong (dating hindi suportadong) platform na gagawin namin
gustong marinig ang tungkol dito. Mangyaring, iulat ang iyong tagumpay/pagkabigo sa PDL mailing list sa
[protektado ng email] . Gagawin namin ang aming makakaya upang tulungan ka sa pag-port ng PDL sa isang bagong system.

Q: 2.7 Saan do I makuha ito?
Available ang PDL bilang source distribution sa Comprehensive Perl archive network (O
CPAN) at mula sa page ng proyekto ng sourceforge.net sa
. Ang mga archive ng CPAN ay naglalaman hindi lamang ng
Pamamahagi ng PDL ngunit din tungkol sa lahat ng iba pa na nauugnay sa Perl. Ang CPAN ay
sinasalamin ng dose-dosenang mga site sa buong mundo. Ang pangunahing site ayhttp://www.cpan.org>,
at ang mga lokal na site ng CPAN (salamin) ay matatagpuan doon. Sa loob ng CPAN makikita mo ang pinakabago
inilabas na bersyon ng PDL sa direktoryo /modules/by-module/PDL/. Ang homepage ng PDL ay nasa
<http://pdl.perl.org> at ang pinakabagong bersyon ay maaari ding i-download mula doon.

Q: 2.8 Ano do I mayroon sa Magbayad sa makuha PDL?
Kami ay nalulugod na maibigay sa iyo ang pinakamagandang posibleng sagot sa isang tanong na tulad
ito: Ang PDL ay *libreng software* at lahat ng mga source ay available sa publiko. Ngunit gayon pa man, mayroon
ilang mga copyright na dapat sundin. Kaya pakiusap, subukang maging kasing ganda namin (ang mga may-akda ng PDL).
at subukang sumunod sa kanila.

Oh, bago mo isipin na ito ay *ganap na libre: kailangan mong mamuhunan ng ilang oras upang hilahin ang
pamamahagi mula sa net, i-compile at i-install ito at (marahil) basahin ang mga manual.

PAGKAKITA TULONG/KARAGDAGANG IMPORMASYON


Q: 3.1 Saan maaari I makuha impormasyon on PDL?
Ang kumpletong dokumentasyon ng PDL ay makukuha kasama ng pamamahagi ng PDL. Gamitin ang utos
"perldoc PDL" upang simulan ang pag-aaral tungkol sa PDL.

Gayunpaman, ang pinakamadaling paraan upang maging pamilyar sa PDL ay ang paggamit ng PDL on-line na tulong
pasilidad mula sa loob ng shell ng PDL, "pdl2" I-type lamang ang "pdl2" sa prompt ng iyong system. minsan
ikaw ay nasa loob ng "pdl2" shell type "help" . Gamit ang "help" at "apropos" commands
sa loob ng shell dapat mong mahanap ang paraan sa pag-ikot ng dokumentasyon.

Mas mabuti pa, maaari mong subukan agad ang iyong bagong nakuhang kaalaman tungkol sa PDL sa pamamagitan ng pag-isyu
Direktang utos ng PDL/Perl sa command line. Upang ilarawan ang prosesong ito, narito ang
record ng isang tipikal na "pdl2" session ng isang PDL beginner (mahabang output ay simboliko lamang
reproduced in braces ( <... ...> ) ):

unix> pdl2
pdl> tulong
< ... tulong output ... >
pdl> tulungan ang PDL::QuickStart
< ... pahina ng perldoc ... >
pdl> $a = pdl (1,5,7.3,1.0)
pdl> $b = sequence float, 4, 4
pdl> tulong sa loob
< ... tulong sa 'inner' function ... >
pdl> $c = panloob na $a, $b
pdl> p $c
[22.6 79.8 137 194.2]

Para sa karagdagang mga mapagkukunan ng impormasyon na naa-access sa pamamagitan ng Internet tingnan ang susunod
tanong.

Q: 3.2 Sigurado doon iba PDL impormasyon pinagkukunan on ang Internet?
Una sa lahat, para sa lahat ng puro Perl na mga tanong na may kaugnayan sa maraming mga mapagkukunan sa net.
Ang mga magandang punto para magsimula ayhttp://www.perl.com> athttp://www.perl.org>.

Maaaring ma-access ang home site ng PDL sa pamamagitan ng pagturo sa iyong web browserhttp://pdl.perl.org>.
Mayroon itong napakaraming goodies para sa sinumang interesado sa PDL:

· Mga pamamahagi ng PDL

· On-line na dokumentasyon

· Mga pointer sa isang HTML archive ng mga mailing list ng PDL

· Isang listahan ng mga platform kung saan matagumpay na nasubok ang PDL.

· Balita tungkol sa kamakailang idinagdag na mga tampok, naka-port na mga aklatan, atbp.

· Pangalan ng kasalukuyang may hawak ng pumpkin para sa iba't ibang PDL modules (kung gusto mong malaman
kung ano ang ibig sabihin nito ay mas mabuting tingnan mo ang mga web page).

Kung interesado ka sa PDL sa pangkalahatan maaari kang sumali sa mailing list ng PDL
[protektado ng email]. Ito ay isang forum upang talakayin ang mga isyu sa programming sa PDL, mag-ulat ng mga bug,
humingi ng tulong sa mga problemang nauugnay sa PDL, atbp. Upang mag-subscribe, punan ang form sa
<http://mailman.jach.hawaii.edu/mailman/listinfo/perldl>.

Ang isang mahahanap na archive at isang hypertext na bersyon ng trapiko sa listahang ito (1997-2004) ay maaaring
ay matatagpuan sahttp://www.xray.mpe.mpg.de/mailing-lists/perldl/> . Higit pang mga kamakailang mensahe
(mula noong Hunyo 2005) ay matatagpuan sahttp://mailman.jach.hawaii.edu/mailman/listinfo/perldl>
.

Kung interesado ka sa lahat ng teknikal na detalye ng patuloy na pag-unlad ng PDL magagawa mo
sumali sa mailing list ng mga developer ng PDL [protektado ng email] . Upang mag-subscribe, punan
ang form sahttp://mailman.jach.hawaii.edu/mailman/listinfo/pdl-porters>.

Ang isang mahahanap na archive at isang hypertext na bersyon ng trapiko sa listahang ito (1997-2004) ay maaaring
ay matatagpuan sahttp://www.xray.mpe.mpg.de/mailing-lists/pdl-porters/> . Higit pang mga kamakailang mensahe
(mula noong Hunyo 2005) ay matatagpuan sa
<http://mailman.jach.hawaii.edu/mailman/listinfo/pdl-porters>.

Dapat na iwasan ang cross-posting sa pagitan ng mga listahang ito maliban kung mayroong a napaka magandang dahilan para sa
ginagawa iyon.

Q: 3.3 Ano is ang kasalukuyan bersyon of PDL ?
Sa pagsulat na ito (FAQ bersyon 1.004 ng 16 Set 2013) ang pinakabagong stable na bersyon ay 2.006.
Ang pinakabagong stable na bersyon ay dapat palaging available mula sa isang CPAN mirror site na malapit sa iyo (tingnan ang
Tanong 2.7 para sa impormasyon kung saan kukuha ng PDL).

Ang pinakabagong (posibleng hindi matatag) na bersyon ng PDL ay maaaring makuha mula sa Git
repository, tingnan ang Tanong 4.10 at mga pana-panahong paglabas ng mga developer ng CPAN ng Git code
gagawin para sa mga layunin ng pagsubok at mas pangkalahatang kakayahang magamit. Ang kasalukuyang post-PDL-2.006
Ang paglabas ng mga developer ng PDL ay magagamit bilang CHM/PDL-2.006_07.tar.gz .

Q: 3.4 I gusto sa mag-ambag sa ang pa pag-unlad of PDL. Gaano maaari I tulong?
Ang dalawang paraan na maaari kang tumulong halos kaagad ay (1) lumahok sa CPAN Testers para sa
PDL at mga kaugnay na module, at (2) pag-proofread at paglilinaw ng dokumentasyon ng PDL upang
ito ay pinaka-magagamit para sa mga gumagamit ng PDL, lalo na ang mga bagong gumagamit.

Upang lumahok sa mga CPAN Tester at mag-ambag ng mga ulat ng pagsubok, ang pahina
<http://wiki.cpantesters.org/wiki/QuickStart> may mga tagubilin para sa pagsisimula para sa alinman
Mga user ng "CPAN" o "CPANPLUS".

Kung mayroon kang isang partikular na proyekto sa isip dapat mong suriin kung may ibang tao na gumagana
dito o kung maaari kang makinabang mula sa mga kasalukuyang module. Gawin ito sa pamamagitan ng pag-post ng iyong nakaplanong proyekto
sa mailing list ng mga developer ng PDL sa [protektado ng email] . Tingnan ang subscription
mga tagubilin sa Tanong 3.2. Palagi kaming naghahanap ng mga taong magsulat ng code at/o
dokumentasyon ;).

Q: 3.5 I mag-isip I mayroon natagpuan a kulisap in ang kasalukuyan bersyon of PDL. Ano Dapat I gawin?
Una, siguraduhin na ang bug/problema na iyong nadatnan ay hindi pa naasikaso
sa ibang lugar sa FAQ na ito. Pangalawa, maaari mong suriin ang mahahanap na archive ng PDL
mga mailing list para malaman kung napag-usapan na ang bug na ito. Kung wala ka pa
nakakita ng anumang mga paliwanag kung saan ka makakapag-post ng ulat ng bug [protektado ng email] , o sa pamamagitan ng
naka-on ang link ng Bugshttp://pdl.perl.org> . Tingnan ang TUMBOK file sa pamamahagi ng PDL para sa
anong impormasyon ang isasama. Kung hindi ka sigurado, mga talakayan sa pamamagitan ng perldl mailing list
maaaring maging lubhang kapaki-pakinabang.

INSTALL


Q: 4.1 I mayroon problema install PDL. Ano Dapat I gawin?
Una siguraduhin na nabasa mo ang file INSTALL sa pamamahagi. Ito ay naglalaman ng isang listahan
ng mga karaniwang problema na hindi na kailangang ulitin dito.

Susunod, suriin ang file perldl.conf upang makita kung sa pamamagitan ng pag-edit ng mga opsyon sa pagsasaayos doon
file na magagawa mong matagumpay na bumuo ng PDL. Ang ilan sa mga module ay nangangailangan ng karagdagang
software na naka-install, mangyaring sumangguni sa file MGA DEPENDENSIYA para sa karagdagang detalye. Siguraduhin mo
upang i-edit ang lokasyon ng mga package na ito sa perldl.conf kung mayroon kang mga ito sa hindi pamantayan
mga lokasyon.

NB Unix shell specific: Kung gusto mong mag-save ng na-edit na perldl.conf para sa hinaharap
builds kopyahin lang ito bilang ~/.perldl.conf sa iyong home directory kung saan ito kukunin
awtomatikong sa panahon ng proseso ng pagbuo ng PDL.

Gayundin, tingnan ang isa pang umiiral nang bersyon ng PDL sa build system. Maramihang PDL
ang mga pag-install sa parehong PATH o @INC ay maaaring magdulot ng nakakalito na pagsubok o mga pagkabigo sa pagbuo.

Kung hindi mo pa rin magawang gumana nang maayos mangyaring magsumite ng ulat ng bug kasama ang detalyadong
impormasyon sa mga problemang naranasan mo sa perldl mailing list (
[protektado ng email] , tingnan din sa itaas). Madalas mabilis ang pagtugon.

Q: 4.2 Sigurado doon configuration file para PDL I mayroon sa i-edit?
Karamihan sa mga user ay hindi dapat mag-edit ng anumang mga configuration file nang manu-mano. Gayunpaman, sa ilang
mga kaso na maaaring kailanganin mong magbigay ng ilang impormasyon tungkol sa awkwardly ilagay kasama
file/library o baka gusto mong tahasang i-disable ang pagbuo ng ilan sa mga opsyonal na PDL
mga module. Suriin ang mga file INSTALL at perldl.conf para sa mga detalye.

Kung kailangan mong manu-manong i-edit perldl.conf at masaya sa mga resulta na maaari mong panatilihin ang
madaling gamitin ang file para sa sanggunian sa hinaharap. Ilagay ito sa ~/.perldl.conf kung saan ito kukunin
awtomatiko o gamitin ang "perl Makefile.PL PDLCONF=your_file_name" sa susunod na bubuo ka ng PDL.

Q: 4.3 Do I kailangan iba software para matagumpay operasyon?
Para sa pangunahing paggana ng PDL hindi mo kailangan ng anumang karagdagang software. Gayunpaman, ang ilan sa
ang mga opsyonal na PDL module na kasama sa pamamahagi (kapansin-pansin ang karamihan sa mga graphics at ilang I/O
modules) ay nangangailangan ng ilang partikular na ibang library/program na mai-install. Suriin ang file
MGA DEPENDENSIYA sa pamamahagi para sa mga detalye at direksyon kung paano makukuha ang mga ito.

Q: 4.4 Gaano maaari I install PDL in a hindi pamantayan lokasyon?
Upang i-install ang PDL sa isang hindi karaniwang lokasyon, gamitin ang opsyong INSTALL_BASE sa "perl
Hakbang sa pag-configure ng Makefile.PL." Halimbawa, "perl Makefile.PL INSTALL_BASE=/mydir/perl5"
ay i-configure ang PDL upang mai-install sa puno na naka-root sa "/mydir/perl5". Para sa karagdagang detalye
tingnan ang "Paano ko papanatilihin ang sarili kong module/direktoryo ng library?" sa perlfaq8 at kasunod na mga seksyon.
Ang isa pang alternatibo ay ang paggamit ng local::lib upang gawin ang mabigat na listahan para sa kinakailangan
pagsasaayos.

Q: 4.5 Gaano maaari I pilitin a ganap linisin pag-install?
Upang magarantiya ang isang ganap na malinis na pag-install ng PDL, kakailanganin mo munang tanggalin ang
kasalukuyang mga file at folder sa pag-install. Ito ang lahat ng mga direktoryo na pinangalanang "PDL" sa
Perl @INC path, mga file na pinangalanang "*Pdlpp*" sa anumang "Inline" na mga direktoryo, at ang mga program na "pdl,
pdldoc, pdl2, perldl, at pptemplate". Pagkatapos ay buuin at i-install lang gaya ng dati. Ito ay
mas madaling subaybayan kung palagi mong ini-install ang "PDL" sa isang hindi karaniwang lokasyon.
Tingnan ang Q: 4.4 sa itaas.

binary PAGBABAGAY


Q: 4.5 Ano doble Distribusyon ay magagamit?
Ang impormasyon tungkol sa binary distribution ng PDL ay matatagpuan sahttp://pdl.perl.org> . Sa
kasalukuyan mayroong mga binary distribution ng PDL para sa Linux (RedHat at Debian), FreeBSD, Mac
OS X at Windows, kahit na maaaring hindi sila ang pinakabagong bersyon.

Kung ang isang tao ay interesado sa pagbibigay ng binary distribution para sa iba pang mga arkitektura, iyon
ay malugod na tinatanggap. Ipaalam sa amin sa [protektado ng email] mailing list. Gayundin
tingnan ang manager ng package ng iyong pamamahagi ng Linux dahil marami na ngayon ang may kasamang PDL. Mga PPM para sa win32
mga bersyon (parehong 32bit at 64bit) ay magagamit din.

Q: 4.6 Ba PDL tumakbo on Linux? (At Ano tungkol sa mga pakete?)
Oo, tumatakbo ang PDL sa Linux at sa katunayan, karamihan sa mga pag-unlad ay ginawa sa ilalim ng Linux.
Naka-onhttp://pdl.perl.org> makakahanap ka ng mga link sa mga pakete para sa ilan sa mga major
mga pamamahagi. Suriin din ang manager ng package ng iyong pamamahagi (yum, apt, urpmi, ...) bilang
Ang PDL ay natagpuan na ngayon ng marami sa mga ito.

Q: 4.7 Ba PDL tumakbo sa ilalim Windows?
Ang PDL ay mahusay na bumubuo sa Win32 gamit ang MinGW o mga Microsoft compiler. Tingnan ang win32/INSTALL file
sa PDL source distribution para sa mga detalye. Ang ibang mga compiler ay hindi pa nasubok--input
ay malugod na tinatanggap. Mayroon ding pamamahagi ng PDL sa pamamagitan ng ppm ng ActiveState, kahit na ito
maaaring hindi palaging pinakabagong bersyon. Ang PDL-2.006 ay binuo sa labas ng kahon sa Strawberry
Perl at ActiveState Perl.

CVS, GIT, AT ON-GOING Pag-unlad


Q: 4.8 Maaari I makuha PDL sa pamamagitan ng CVS?
Hindi. Ang pagbuo ng PDL ay isinagawa gamit ang isang CVS repository mula Disyembre 1999 hanggang Abril 2009.
Noong Abril 2009 lumipat ang proyekto sa Git version control system (tingnan ang
<http://git-scm.com>).

Q: 4.9 Gaano do I makuha PDL sa pamamagitan ng Git?
Ipagpalagay na mayroon kang naka-install na Git sa iyong system at gusto mong i-download ang source code ng proyekto
sa direktoryo na "PDL". Para makakuha ng read-only na access sa repository, mag-type ka sa
command line

git clone git://git.code.sf.net/p/pdl/code pdl-code

Para sa mga opisyal na developer ng PDL, para makakuha ng read/write access sa uri ng repository sa
command line

git clone ssh://[protektado ng email]/p/pdl/code pdl-code

Q: 4.10 I nagkaroon a problema sa ang pumunta bersyon, paano do I tsek if isang tao ay isinumite a
patch?
Ang Sourceforge system ay naglalaman ng isang patch-manager na naglalaman ng mga patch na wala pa
inilapat sa pamamahagi. Maaari itong ma-access sa pamamagitan ng menu ng Mga Ticket sa PDL's
Pahina ng proyekto ng Sourceforgehttp://sourceforge.net/projects/pdl>.

Bilang karagdagan, kung hindi ka nagsu-subscribe sa mailing list, tingnan ang archive ng
"pdl-porters" at "perldl" na mga mailing list. Tingnan ang Tanong 3.2 para sa mga detalye.

Q: 4.11 I mayroon nakuha developer daan sa Git, paano do I mag-upload ng my mga pagbabago?
Ang unang bagay na dapat mong gawin ay basahin ang dokumentasyon ng Git at matutunan ang mga pangunahing kaalaman tungkol sa
Git. Mayroong maraming mga mapagkukunan na magagamit online. Ngunit narito ang mga pangunahing kaalaman:

Bago mo i-upload ang iyong mga pagbabago, ilagay ang mga ito sa IYONG imbakan

git add ...
git commit

o pagsamahin ang dalawang ito sa

git gumawa -a

Pagkatapos ay hilahin ang anumang mga pagbabagong ginawa ng iba

git pull pinagmulan

Subukan ang PDL bago mo ito itulak sa pangunahing imbakan. Kung sira ang code para sa iyo,
pagkatapos ito ay malamang na sira para sa iba at hindi sila magiging masaya na magkaroon ng kanilang kamakailang PDL
mabigo sa pagbuo! TANDAAN: Pinapadali ng git na mapanatili ang isang hiwalay na sangay ng pag-unlad.
[ TBD, magbigay ng impormasyon kung paano ].

Pagkatapos ay i-update ang nakabahaging repositoryo (sa SF.net) kasama ang iyong mga pagbabago

git push origin master

PDL JARGON


Q: 5.1 Ano is sinulid (ay PDL a newsreader) ?
Sa kasamaang palad, sa konteksto ng PDL ang terminong threading ay maaaring magkaroon ng dalawang magkaibang (ngunit
kaugnay) kahulugan:

· Kapag binanggit sa INSTALL mga direksyon at posibleng sa panahon ng proseso ng pagbuo na mayroon kami
ang karaniwang kahulugan ng computer science ng multi-threading sa isip (pangunahing kapaki-pakinabang sa
mga multiprocessor machine o cluster)

· PDL threading ng mga operasyon sa piddles (tulad ng nabanggit sa indexing docs) ay ang
pag-ulit ng isang pangunahing operasyon sa naaangkop na mga sub-slice ng piddles, hal
produktong "inner $a, $b" ng isang (3) pdl $a at isang (3,5,4) pdl $b ay nagreresulta sa isang (5,4) piddle
kung saan ang bawat halaga ay resulta ng isang panloob na produkto ng (3) pdl na may (3) sub-slice
ng (3,5,4) piddle. Para sa mga detalye tingnan ang PDL::Indexing

Ang PDL threading ay natural na humahantong sa potensyal na parallel code na maaaring gumamit ng multi
threading sa multiprocessor machine/network; doon mayroon kang koneksyon sa pagitan ng
dalawang uri ng paggamit ng termino.

Q: 5.2 Ano is a piddle?
Well, PDL scalar variable (na mga pagkakataon ng isang partikular na klase ng Perl object,
ibig sabihin, ang mga pinagpalang bagay (tingnan ang "perldoc perlobj")) ay nasa karaniwang PDL parlance na kadalasang tinatawag
mga piddles (halimbawa, tingnan ang mga archive ng mailing list). Err, malinaw? Kung hindi, gamitin lang
ang termino piddle kapag sumangguni ka sa isang variable ng PDL (isang halimbawa ng isang bagay na PDL hangga't maaari
tandaan) anuman ang aktwal na data na nilalaman ng variable ng PDL.

TEKNIKAL KATANUNGAN


Q: 6.1 Ano is perldl? Ano is pdl2?
Minsan ang "perldl" ("pdl2") ay ginagamit bilang kasingkahulugan ng PDL. Sa mahigpit na pagsasalita, gayunpaman, ang
Ang pangalang "perldl" ("pdl2") ay nakalaan para sa maliit na shell na kasama ng PDL
pamamahagi at dapat gamitin para sa interactive na prototyping ng mga script ng PDL.
Para sa mga detalye tingnan ang perldl o pdl2.

Q: 6.2 Gaano do I makuha on-line Tulungan para PDL?
I-type lamang ang "help" (shortcut = "?") sa "pdl2" shell prompt at magpatuloy mula doon.
Ang isa pang kapaki-pakinabang na utos ay ang "apropos" (shortcut = "??") na utos. Subukan din ang "demo"
command sa shell na "perldl" o "pdl2" kung bago ka sa PDL.

PAGPAPATAKBO OF PIDDLES


Q: 6.3 I gusto sa daan ang ikatlo sangkap of a pdl pero $a[2] hindi trabaho ?!
Tingnan ang sagot sa susunod na tanong kung bakit hindi gumagana ang normal na Perl array syntax para sa mga piddle.

Q: 6.4 Ang doc sabihin mga piddles ay ilan uri of pag-ayos. pero bakit hindi ang Perl ayos palaugnayan
trabaho sa mga piddles pagkatapos ?
OK, tama ka sa isang paraan. Sinasabi ng mga doc na ang mga piddle ay maaaring isipin ng mga array. Higit pa
partikular, sinasabi nito ( PDL::QuickStart ):

Nalaman ko kapag ginagamit ang Perl Data Language ito ay pinakakapaki-pakinabang
na isipin ang karaniwang Perl @x variable bilang "mga listahan" ng generic
"bagay" at PDL variable tulad ng $x bilang "arrays" na maaaring maging
nakapaloob sa mga listahan o hash.

Kaya, habang ang mga piddles ay maaaring isipin bilang isang uri ng multi-dimensional array ang mga ito hindi
arrays sa Perl sense. Sa halip, mula sa punto ng view ng Perl sila ay ilang espesyal
class (na kasalukuyang ipinapatupad bilang isang opaque pointer sa ilang bagay sa memorya) at
kaya kailangan ng mga espesyal na function (o 'mga pamamaraan' kung ginagamit mo ang bersyon ng OO) para ma-access
indibidwal na elemento o hanay ng mga elemento. Ang mga function/paraan upang suriin ay "sa" /
"set" (tingnan ang seksyong 'Sections' sa PDL::QuickStart ) o ang malakas na function na "slice"
at mga kaibigan (tingnan ang PDL::Slices at PDL::Indexing at lalo na ang PDL::NiceSlice ).

Sa wakas, para lubos kang malito, maaari kang magkaroon ng mga Perl arrays ng piddles, hal $spec[3] maaari
sumangguni sa isang pdl na kumakatawan sa , hal., isang spectrum, kung saan ang $spec[3] ay ang ikaapat na elemento ng
Perl list (o array ;) @spec . Ito ay maaaring nakalilito ngunit ito ay lubhang kapaki-pakinabang!

Q: 6.5 Gaano do I pagsamahin piddles?
Karamihan sa mga tao ay susubukan na bumuo ng mga bagong piddles mula sa lumang piddles gamit ang ilang pagkakaiba-iba sa ibabaw ng
theme: "$a = pdl([$b, 0, 2])" , ngunit hindi ito gumagana. Ang paraan upang pagdugtungin ang mga piddles ay
para gamitin ang function na "cat" (tingnan din ang "append" at "glue"). Katulad nito maaari mong hatiin ang mga piddles
gamit ang command na "aso" .

Q: 6.6 Minsan I am pagkuha mga ito kakaiba resulta kailan paggamit sa lugar operasyon?
Ang tanong na ito ay nauugnay sa function na "inplace". Mula sa dokumentasyon (tingnan
PDL::QuickStart):

Karamihan sa mga function, hal log(), ay nagbabalik ng resulta na a
pagbabago ng kanilang argumento. Ito ay gumagawa para sa kabutihan
pagsasanay sa programming. Gayunpaman maraming mga operasyon ang maaaring gawin
"in-place" at maaaring kailanganin ito kapag may malalaking array
ang paggamit at memorya ay nasa isang premium. Para sa mga pangyayaring ito ang
operator inplace() ay ibinigay na pumipigil sa dagdag na kopya
at pinapayagan ang argumento na mabago. hal:

$x = log($array); # $array ang hindi naapektuhan
log(inplace($bigarray) ); # $bigarray ay nagbago sa situ

At galing din kay doc!!:

Malinaw na kapag ginamit sa ilang mga function na hindi maaaring
inilapat sa lugar (hal. convolve()) ang mga hindi inaasahang epekto ay maaaring
mangyari!

Q: 6.7 Ano is ito kakaiba paggamit of ang pisi pagsasama-sama opereytor ".=" in PDL
mga script?
Tingnan ang susunod na tanong sa takdang-aralin sa PDL.

Q: 6.8 Bakit ay doon dalawa iba uri of trabaho in PDL ?
Ito ay sanhi ng katotohanan na sa kasalukuyan ay pinapayagan lamang ng operator ng pagtatalaga na "="
restricted overloading. Para sa ilang mga layunin ng PDL ito ay naging kinakailangan na magkaroon
higit na kontrol sa overloading ng isang assignment operator. Samakatuwid, pinag-aaralan ng PDL ang
operator ".=" para sa ilang uri ng mga takdang-aralin.

Q: 6.9 Gaano do I itakda a itakda of halaga in a piddle?
Sa Perl 5.6.7 at mas mataas ang assignment na ito ay maaaring gawin gamit ang mga subroutine ng lvalue:

pdl> $a = pagkakasunud-sunod(5); p $a
[0 1 2 3 4]
pdl> $a->slice('1:2') .= pdl([5,6])
pdl> p $a
[0 5 6 3 4]

tingnan ang PDL::Lvalue para sa higit pang impormasyon. Sinusuportahan din ng PDL ang isang mas matrix-like slice syntax sa pamamagitan ng
PDL::NiceSlice module:

pdl> $a(1:2) .= pdl([5,6])
pdl> p $a
[0 5 6 3 4]

Sa mga bersyon ng Perl bago ang 5.6.7 or kailan tumatakbo sa ilalim ang perlas debugger ito ay dapat
gawin gamit ang isang pansamantalang variable:

pdl> $a = pagkakasunud-sunod(5); p $a
[0 1 2 3 4]
pdl> $tmp = $a->slice('1:2'); p $tmp;
[1 2]
pdl> $tmp .= pdl([5, 6]); # Tandaan .= !!
pdl> p $a
[0 5 6 3 4]

Maaari din itong gawing isang expression, na madalas na makikita sa PDL code:

pdl> ($tmp = $a->slice('1:2')) .= pdl([5,6])
pdl> p $a
[0 5 6 3 4]

Q: 6.10 Maaari I gamitin a piddle in a kondisyonal pagpapahayag?
Oo kaya mo, ngunit hindi sa paraang malamang na sinubukan mo muna. Hindi pwedeng gumamit ng a
direktang umikot sa isang conditional na expression dahil ito ay karaniwang hindi maganda ang kahulugan. sa halip
Ang PDL ay may dalawang napaka-kapaki-pakinabang na pag-andar: "anumang" at "lahat" . Gamitin ang mga ito upang subukan kung mayroon o lahat
Ang mga elemento sa isang piddle ay nakakatugon sa ilang pamantayan:

pdl> $a=pdl ( 1, -2, 3);
pdl> print '$a ay may kahit isang elemento < 0' kung (anumang $a < 0);
Ang $a ay may kahit isang elemento < 0

pdl> print '$a is not positive definite' maliban kung (lahat $a > 0);
$a ay hindi positibong tiyak

Q: 6.11 Lohikal operator at mga piddles - '||' at '&&' huwag trabaho!
Karaniwang problema na sinusubukan mong gumawa ng mask array o katulad nito gamit ang a
bumuo tulad ng

$mask = which($piddle > 1 && $piddle < 2); # mali

ito ang hindi trabaho! Ang hinahanap mo ay ang bitwise mga lohikal na operator '|' at
'&' na gumagana sa isang element-by-element na batayan. Kaya ito ay talagang napaka-simple: Huwag gamitin
mga lohikal na operator sa mga multi-element na piddle dahil talagang hindi iyon makatuwiran, sa halip
isulat ang halimbawa bilang:

$mask = which($piddle > 1 & $piddle < 2);

na gumagana nang tama.

ADVANCED PAKSA


Q: 6.12 Ano is a walang halaga pdl ?
Ang "null" ay isang espesyal na token para sa 'empty piddle'. Ang isang null pdl ay maaaring gamitin upang mag-flag sa isang PDL
function na dapat itong lumikha ng isang naaangkop na laki at na-type na piddle. Walang bisa pwede ang piddles
gagamitin sa mga lugar kung saan inaasahan ng isang function ng PDL ang isang output or pansamantala argumento. Pagbubuhos at
pansamantala ang mga argumento ay na-flag sa lagda ng isang PDL function na may "[o]" at
"[t]" qualifiers (tingnan ang susunod na tanong kung hindi mo alam kung ano ang lagda ng isang PDL function
ay). Halimbawa, maaari mong gamitin ang function na "sumover" tulad ng sumusunod:

sumover $a, $b=null;

na katumbas ng

$b = sumover $a;

Kung ito ay tila medyo malabo tingnan ang PDL::Indexing at PDL::PP para sa mga detalye tungkol sa pagtawag
mga kombensiyon, ang lagda at sinulid (tingnan din sa ibaba).

Q: 6.13 Ano is ang lagda of a PDL tungkulin ?
Ang lagda ng isang function ay isang mahalagang konsepto sa PDL. Marami (ngunit hindi lahat) PDL
function na may a lagda na tumutukoy sa mga argumento at ang kanilang (minimal)
dimensionality. Bilang halimbawa, tingnan ang lagda ng "maximum" na function:

'a(n); [o] b;'

sinasabi nito na ang "maximum" ay tumatagal ng dalawang argumento, ang una ay (hindi bababa sa) isa-
dimensional habang ang pangalawa ay zero-dimensional at an output argumento (na-flag ni
ang "[o]" qualifier). Kung ang function ay tinatawag na may piddles ng mas mataas na dimensyon ang
function ay paulit-ulit na tinatawag na may mga hiwa ng mga piddles ng naaangkop
dimensyon (ito ay tinatawag na sinulid sa PDL).

Para sa mga detalye at karagdagang paliwanag kumonsulta sa PDL::Indexing at PDL::PP .

Q: 6.14 Gaano maaari I subclass (manahin mula) piddles?
Ang maikling sagot ay: basahin ang PDL::Objects (hal. i-type ang "help PDL::Objects" sa perldl or
pdl2 shell).

Ang mas mahabang sagot (kinuha mula sa PDL::Objects ): Dahil ang isang bagay na PDL ay isang opaque
reference sa isang C struct, ito ay hindi posible na pahabain ang PDL klase sa pamamagitan ng hal dagdag na data sa pamamagitan ng
sub-classing (tulad ng magagawa mo sa isang hash based Perl object). Upang maiwasan ang problemang ito
Ang PDL ay may built-in na suporta upang palawigin ang klase ng PDL sa pamamagitan ng mayroong relasyon para mapalad
mga hash. Makukuha mo ang MAYROONG upang kumilos tulad ng AY ISANG sa simpleng pagtatalaga mo ng bagay na PDL
sa attribute na pinangalanang "PDL" at muling tukuyin ang pamamaraan magpasimula(). Halimbawa:

pakete FOO;

@FOO::ISA = qw(PDL);
sub initialize {
aking $class = shift;
aking $sarili = {
creation_time => time(), # kinakailangang extension :-)
PDL => PDL->null, # ginagamit upang mag-imbak ng bagay na PDL
};
pagpalain ang $sarili, $klase;
}

Para sa isa pang halimbawa suriin ang script t/subclass.t sa pamamahagi ng PDL.

Q: 6.15 Ano on lupa is ito daloy ng data mga bagay ?
Ang Dataflow ay isang pang-eksperimentong proyekto na hindi mo kailangang alalahanin ang iyong sarili (ito
hindi dapat makagambala sa iyong karaniwang programming). Gayunpaman, kung gusto mong malaman, magkaroon ng isang
tingnan ang PDL::Dataflow . May mga application na makikinabang sa feature na ito (at
ito ay nasa trabaho na sa likod ng mga eksena).

Q: 6.16 Ano is PDL::PP?
Simpleng sagot: Ang PDL::PP ay parehong pandikit sa pagitan ng mga panlabas na aklatan at PDL at isang maigsi
wika para sa pagsulat ng mga function ng PDL.

Bahagyang mas mahabang sagot: Ang PDL::PP ay ginagamit upang mag-compile ng napaka-maigsi na mga kahulugan sa XSUB
mga nakagawiang ipinapatupad sa C na madaling matawag mula sa PDL at awtomatikong
suportahan ang threading, dataflow at iba pang mga bagay nang hindi mo kailangang mag-alala tungkol dito.

Para sa karagdagang detalye tingnan ang PDL::PP at ang seksyon sa ibaba sa Mga Extension ng PDL.

Q: 6.17 Ano ang mangyayari kailan I mayroon ilang sanggunian sa ang pareho PDL bagay in iba
mga variable (pag-clone, atbp?) ?
Ang mga Piddle ay kumikilos tulad ng mga sanggunian ng Perl sa maraming aspeto. Kaya kapag sinabi mo

$a = pdl [0,1,2,3];
$b = $a;

pagkatapos ay parehong $b at $a tumuturo sa parehong bagay, hal pagkatapos ay sinasabi

$b++;

ay *hindi* gagawa ng kopya ng orihinal na piddle ngunit dagdag lang sa lugar, kung saan ikaw
maaaring kumbinsihin ang iyong sarili sa pamamagitan ng pagsasabi

i-print ang $a;
[1 2 3 4]

Hindi ito dapat ipagkamali para sa dataflow na nag-uugnay sa ilang *iba't ibang* object kaya
na ang mga pagbabago sa data ay pinapalaganap sa pagitan ng mga naka-link na piddles (bagama't, sa ilalim ng tiyak
mga pangyayari, ang dataflown piddles ay maaaring pisikal na magbahagi ng parehong data).

Mahalagang isaisip ang "reference nature" ng piddles kapag pumasa sa piddles
sa mga subroutine. Kung babaguhin mo ang input piddles, babaguhin mo ang orihinal na argumento, hindi a
kopya nito. Ito ay naiiba sa ilang iba pang mga array processing language ngunit ginagawa para sa
napakahusay na pagpasa ng mga piddles sa pagitan ng mga subroutine. Kung ayaw mong baguhin ang
orihinal na argumento ngunit sa halip ay isang kopya nito ay lumikha lamang ng isang kopya nang tahasan (ang halimbawang ito din
nagpapakita kung paano maayos na suriin ang isang malinaw hiling na iproseso sa lugar, sa pag-aakalang
ang iyong routine ay maaaring gumana sa lugar):

sub myfunc {
aking $pdl = shift;
if ($pdl->is_inplace) {
$pdl->set_inplace(0)
} Iba pa {
# baguhin ang isang kopya bilang default
$pdl = $pdl->kopya
}
$pdl->set(0,0);
ibalik ang $pdl;
}

IBA PA


Q: 6.18 Ano I / O format ay suportado by PDL ?
Ang kasalukuyang mga bersyon ng PDL ay sumusuporta na sa maraming iba't ibang mga format ng I/O.
Gayunpaman, hindi palaging halata kung aling module ang nagpapatupad ng mga format. Para matulungan kang maghanap
ang tamang module para sa format na kailangan mo, narito ang isang maikling listahan ng kasalukuyang listahan ng
Mga format ng I/O at isang pahiwatig kung saang module mahahanap ang pagpapatupad:

· Ang isang home brew fast raw (binary) I/O na format para sa PDL ay ipinapatupad ng FastRaw module

· Ang FlexRaw module ay nagpapatupad ng mga generic na pamamaraan para sa input at output ng `raw' na data
mga array. Sa partikular, ito ay idinisenyo upang basahin ang output mula sa FORTRAN 77 UNFORMATTED
file at ang mababang antas ng C "write" function, kahit na ang mga file ay naka-compress o
naka-gzip.

Posible na ang FastRaw functionality ay isasama sa FlexRaw module
sa ilang panahon sa hinaharap.

· Ang FITS I/O ay ipinatupad ng mga function na "wfits"/"rfits" sa PDL::IO::FITS .

· Ang ASCII file I/O sa iba't ibang format ay maaaring makuha sa pamamagitan ng paggamit ng "rcols" at "rgrep"
function, din sa PDL::IO::Misc .

· Ang PDL::IO::Pic ay nagpapatupad ng isang interface sa mga filter ng NetPBM/PBM+ upang magbasa/magsulat ng ilang
sikat na mga format ng imahe; sinusuportahan din ang output ng mga pagkakasunud-sunod ng imahe bilang mga MPEG na pelikula,
mga animated na GIF at isang malawak na iba't ibang mga format ng video.

· Sa CPAN mahahanap mo ang PDL::NetCDF module na gumagana sa kasalukuyang inilabas
bersyon ng PDL 2.006.

Para sa karagdagang detalye kumonsulta sa mas detalyadong listahan sa dokumentasyon ng PDL::IO o sa
dokumentasyon para sa mga indibidwal na module.

Q: 6.19 Gaano maaari I magtalaksan a itakda of 2D mga dumadating (mga larawan) sa a 3D piddle?
Ipagpalagay na ang lahat ng mga arrays ay may parehong laki at sa ilang format na kinikilala ng "rpic" (tingnan
PDL::IO::Pic ) masasabi mong:

gumamit ng PDL::IO::Pic;
@names = qw/name1.tif .... nameN.tif/; # ilang pangalan ng file
$dummy = PDL->rpic($pangalan[0]);
$cube = PDL->zero($dummy->type,$dummy->dims,$#name+1); # gumawa ng 3D piddle
para sa (0..$#names) {
# ito ang slice assignment
($tmp = $cube->slice(":,:,($_)")) .= PDL->rpic($pangalan[$_]);
}

or

$cube(:,:,($_)) .= PDL->rpic($pangalan[$_]);

para sa slice assignment gamit ang bagong PDL::NiceSlice syntax at Lvalue assignment.

Binabasa ng for loop ang mga aktwal na larawan sa isang pansamantalang 2D piddle na ang mga halaga ay noon
itinalaga (gamit ang overloaded na ".=" operator) sa naaangkop na mga hiwa ng 3D piddle
$cube .

Q: 6.20 Saan ay pagsusulit file para ang graphics mga module?
Ang sagot na ito ay pangunahing naaangkop sa PDL::Graphics::TriD (PDL's device independent 3D graphics
modelo) na kung saan ay ang trickiest isa sa paggalang na ito. Makakakita ka ng ilang test script sa
Mga Demo/TriD sa pamamahagi. Meron din 3dtest.pl at line3d.pl nasa
Direktoryo ng PDL/Example/TriD. Pagkatapos mong maitayo ang PDL maaari mong gawin:

perl -Mblib Halimbawa/TriD/3dtest.pl

perl -Mblib Halimbawa/TriD/line3d.pl

upang subukan ang dalawang TriD test program. Nag-eehersisyo lang sila ng isang TriD function bawat isa ngunit ang kanilang
pinadali ng pagiging simple ang pag-debug kung kinakailangan gamit ang Perl debugger, tingnan ang perldbug.

Ang mga programa sa direktoryo ng Demo ay pinakamadaling patakbuhin mula sa "perldl" o "pdl2"
interactive na shell:

perl -Mblib perldl o perl -Mblib Perldl2/pdl2

na sinusundan ng "demo 3d" o "demo 3d2" sa prompt. Ang "demo" mismo ay magbibigay sa iyo ng isang listahan
ng mga available na demo ng PDL.

Maaari mong patakbuhin nang manu-mano ang mga pansubok na script sa direktoryo ng Demos/TriD sa pamamagitan ng pagbabago doon
direktoryo at tumatakbo

perl -Mblib

kung saan "testfile" ; dapat tumugma sa pattern na "test[3-9].p" at panoorin ang mga resulta. Ilan sa
ang mga pagsubok ay dapat maglabas ng isang window kung saan maaari mong kontrolin (iikot) ang mga 3D na bagay gamit ang
daga. Subukang gamitin ang mouse button 1 para iikot ang mga bagay sa 3D space, mouse button 3 hanggang
mag-zoom in at out, at 'q' para umabante sa susunod na yugto ng pagsubok.

Q: 6.21 Ano is TriD or PDL::TriD or PDL::Graphics::TriD?
Ang mga tanong na tulad nito ay dapat na isang bagay ng nakaraan kasama ang PDL on-line na sistema ng tulong
lugar. Subukan lang (pagkatapos ng pag-install):

un*x> pdl2
pdl> apropos trid

Suriin ang output para sa mga promising hit at pagkatapos ay subukang hanapin ang ilan sa mga ito, hal

pdl> tulungan ang PDL::Graphics::TriD

Tandaan na ang kaso ay mahalaga sa "tulong" ngunit hindi sa "apropos" .

Q: 6.22 PGPLOT ang hindi magsulat Palabas PNG file.
Mayroong ilang mga mapagkukunan ng problema sa PGPLOT at PNG na mga file. Una, kapag pinagsama-sama ang
pgplot na mga aklatan, siguraduhing tanggalin mo ang komento sa mga PNG na entry sa drivers.list file. Pagkatapos
kapag nagpapatakbo ng 'make' malamang na mayroon kang isang error tulad ng

C

Upang ayusin ito, hanapin ang linya sa 'makefile' na nagsisimula sa 'pndriv.o:' (ito ay malapit sa
ibaba). Baguhin, halimbawa, ./png.h sa /usr/include/png.h, kung doon ang iyong header
Ang mga file ay (mayroon ka ngang libpng at libz devel packages, hindi ba?). Gawin ito para sa lahat
apat na entry sa linyang iyon, pagkatapos ay bumalik at patakbuhin ang "make".

Pangalawa, kung mayroon ka nang PGPLOT Perl module at PDL na naka-install, malamang na sinubukan mo
upang magsulat ng isang PNG file at nakakuha ng nakamamatay na mensahe ng error tulad ng:

C

Ito ay dahil ang PGPLOT Perl module ay hindi awtomatikong nagli-link laban sa png at z
mga aklatan. Kaya kapag ini-install mo ang PGPLOT Perl module (bersyon 2.19) mula sa CPAN,
huwag "mag-install ng PGPLOT", ngunit "kumuha ng PGPLOT" lamang. Pagkatapos ay lumabas sa CPAN at manu-mano
i-install ang PGPLOT, na tinatawag ang makefile nang ganito:

C/ Usr / lib>

sa pag-aakalang may mga file gaya ng /usr/lib/libpng.so.*, /usr/lib/libz.so.*. Edi gawin
ang karaniwang "gumawa; gumawa ng pagsubok; gumawa ng pag-install;" pagkakasunod-sunod. Ngayon ay maaari kang magsulat ng mga png file mula sa
PDL!

KAHALAGAAN OF PDL


Q: 7.1 I am hinahanap para a pakete sa do XXX in PDL. Saan Dapat I tumingin para ito?
Ang unang hinto ay muli ang "perldl" o "pdl2" at ang on-line na tulong o ang dokumentasyon ng PDL.
Marami nang functionality sa PDL na maaaring hindi mo alam. Ang
pinakamadaling paraan upang maghanap ng pag-andar ay ang paggamit ng "apropos" na utos:

pdl> apropos 'integral'
ceil Round sa integral values ​​sa floating-point na format
floor Round sa integral values ​​sa floating-point na format
intover Project sa pamamagitan ng integral sa N-1 na mga dimensyon
rint Round sa integral values ​​sa floating-point na format

Dahil ang apropos na utos ay walang sopistikadong search engine tiyaking maghahanap ka sa a
ilang magkakaugnay na paksa at gumamit ng mga maikling parirala.

Gayunpaman mayroong isang magandang pagkakataon na ang kailangan mo ay hindi bahagi ng pamamahagi ng PDL. Ikaw
pagkatapos ay mahusay na pinapayuhan na mag-check outhttp://pdl.perl.org> kung saan mayroong listahan ng mga pakete
gamit ang PDL. Kung hindi nito malulutas ang iyong problema, magtanong sa mailing-list, kung wala nang iba pa
maaari kang makakuha ng tulong na magbibigay-daan sa iyong i-interface ang iyong package sa PDL mismo, tingnan mo
din ang susunod na tanong.

Q: 7.2 Maaari I daan my C/FORTRAN aklatan gawain in PDL?
Oo, maaari mo, sa katunayan ito ay napaka-simple para sa maraming mga simpleng application. Ang gusto mo ay ang
PDL pre-processor PP (PDL::PP ). Papayagan ka nitong gumawa ng isang simpleng interface sa iyong C
gawain.

Ang dalawang function na kailangan mong matutunan (hindi bababa sa una) ay "pp_def" na tumutukoy sa
interface ng pagtawag sa function, pagtukoy ng mga parameter ng input at output, at naglalaman
ang code na nagli-link sa panlabas na library. Ang isa pang utos ay "pp_end" na matatapos
ang mga kahulugan ng PP. Para sa mga detalye tingnan ang PDL::PP man-page, ngunit mayroon din kaming nagtrabaho
halimbawa dito.

double eight_sum(int n)
{
int i;
dobleng kabuuan, x;

kabuuan = 0.0; x=0.0;
para sa (i=1; i<=n; i++) {
x++;
kabuuan += x/((4.0*x*x-1.0)*(4.0*x*x-1.0));
}
ibalik ang 1.0/sum;
}

Dito ay magpapakita kami sa iyo ng isang halimbawa kung paano ka nag-interface ng C code sa PDL. Ito ang una
halimbawa at ipapakita sa iyo kung paano tantiyahin ang numero 8...

Ang C code ay ipinapakita sa itaas at ito ay isang simpleng function na nagbabalik ng doble, at umaasa ng isang
integer - ang bilang ng mga termino sa kabuuan - bilang input. Maaaring tukuyin ang function na ito sa a
library o, tulad ng ginagawa namin dito, bilang isang inline na function.

Ipagpaliban namin ang pagsusulat ng Makefile hanggang mamaya. Una naming bubuuin ang ".pd"
file. Ito ang file na naglalaman ng PDL::PP code. Tinatawag namin itong "eight.pd" .

#
# pp_def ay tumutukoy sa isang PDL function.
#
pp_addhdr (
'
double eight_sum(int n)
{
int i;
dobleng kabuuan, x;

kabuuan = 0.0; x=0.0;
para sa (i=1; i<=n; i++) {
x++;
kabuuan += x/((4.0*x*x-1.0)*(4.0*x*x-1.0));
}
ibalik ang 1.0/sum;

}
');

pp_def (
'walo',
Pars => 'int a(); doble [o]b();',
Code => '$b()=eight_sum($a());'
);

# Laging siguraduhin na tapusin mo ang iyong mga deklarasyon sa PP sa
# pp_tapos na

pp_done();

Ang isang kakaiba sa aming halimbawa ay isinama namin ang buong code na may "pp_addhdr"
sa halip na i-link ito. Ito ay para lamang sa mga layunin ng halimbawa, sa isang tipikal
application na gagamitin mo ang "pp_addhdr" upang isama ang mga file ng header. Tandaan na ang argumento sa
Ang "pp_addhdr" ay nakapaloob sa mga panipi.

Ang pinakamahalaga sa halimbawang ito ay gayunpaman ang "pp_def" na utos. Ang unang argumento
dito ang pangalan ng bagong function otso , pagkatapos ay darating ang isang hash na ang tunay na karne:

· Ibinibigay nito ang mga parameter ng input (dito "a") at ang mga parameter ng output (dito "b"). Ang
ang huli ay ipinahiwatig ng "[o]" specifier. Ang parehong mga argumento ay maaaring magkaroon ng isang uri
pagtutukoy tulad ng ipinapakita dito.

Maraming mga pagkakaiba-iba at karagdagang kakayahang umangkop sa interface ay maaaring tukuyin. Tingnan mo
"perldoc PDL::PP" para sa mga detalye.

· Ang switch na ito ay naglalaman ng code na dapat isagawa. Tulad ng makikita mo ito ay isang halip
kakaibang halo ng C at Perl, ngunit mahalagang ito ay tulad ng isusulat mo ito sa C, ngunit
ang mga variable na ipinasa mula sa PDL ay tinatrato nang iba at kailangang i-refer
sa may naunang '$'.

Mayroon ding mga simpleng macro upang ipasa ang mga pointer sa data at upang makuha ang mga halaga ng
iba pang dami ng Perl, tingnan ang manu-manong pahina para sa karagdagang mga detalye.

Panghuli tandaan ang tawag sa "pp_done()" sa dulo ng file. Ito ay kinakailangan sa lahat ng PP
file.

OK. Kaya ngayon mayroon kaming isang file na may code na gusto naming gamitin sa Perl sa pamamagitan ng PDL. Upang
gawin ito kailangan naming i-compile ang function, at para magawa iyon kailangan namin ng Makefile.

gumamit ng PDL::Core::Dev;
gumamit ng ExtUtils::MakeMaker;
PDL::Core::Dev->import();

$package = ["eight.pd",Eight,PDL::Eight];
%hash = pdlpp_stdargs($package);

WriteMakefile( %hash );

sub MY::postamble {pdlpp_postamble($package)};

Ang code sa itaas ay dapat pumunta sa isang file na tinatawag na Makefile.PL, na pagkatapos ay dapat na tawagin
sa karaniwang paraan ng Perl: "perl Makefile.PL" . Dapat itong magbigay sa iyo ng Makefile at
ang pagpapatakbo ng "make" ay dapat i-compile ang module para sa iyo at ang "make install" ay i-install ito para sa
iyo.

Q: 7.3 Gaano maaari I interface pakete XXX in PDL?
Ang tanong na ito ay malapit na nauugnay sa nakaraang isa, at tulad ng sinabi namin doon, ang PDL::PP
Ang pre-processor ay ang karaniwang paraan ng interfacing ng mga panlabas na pakete sa PDL. Ang pinaka
karaniwang paraan upang gamitin ang PDL::PP ay ang pagsulat ng isang maikling interface na gawain, tingnan ang PDL::PP perldoc
pahina at ang sagot sa nakaraang tanong para sa mga halimbawa.

Gayunpaman, posible ring mag-interface ng isang package sa PDL sa pamamagitan ng muling pagsulat ng iyong function sa
PDL::PP direkta. Maaari itong maging maginhawa sa ilang partikular na sitwasyon, lalo na kung mayroon ka
isang routine na inaasahan ang isang function bilang input at gusto mong ipasa ang function na isang Perl
function para sa kaginhawahan.

Ang PDL::PP perldoc page ay ang pangunahing pinagmumulan ng impormasyon para sa pagsulat ng mga extension ng PDL::PP,
ngunit ito ay lubhang kapaki-pakinabang upang tumingin para sa mga file sa pamamahagi ng PDL bilang marami sa mga core
Ang mga function ay nakasulat sa PDL::PP. Maghanap ng mga file na nagtatapos sa ".pd" na karaniwang
tinanggap na suffix para sa PDL::PP file. Ngunit mayroon din kaming isang simpleng halimbawa dito.

Ang sumusunod na halimbawa ay magpapakita sa iyo kung paano magsulat ng isang simpleng function na awtomatikong
pinapayagan ang threading. Upang gawin itong maigsi ang halimbawa ay isang halos walang kuwentang function, ngunit
ang intensyon ay ipakita ang mga pangunahing kaalaman sa pagsulat ng PDL::PP interface.

Magsusulat kami ng isang simpleng function na kinakalkula ang minimum, maximum at average ng a
piddle. Sa aking makina ang resultang function ay 8 beses na mas mabilis kaysa sa built-in na function
"stats" (siyempre kinakalkula din ng huli ang median).

Diretso tayong tumalon. Narito ang code (mula sa file na tinatawag na "quickstats.pd")

#
pp_def('quickstats',
Pars => 'a(n); [o]avg(); [o]max(); [o]min()',
Code => '$GENERIC(a) curmax, curmin;
$GENERIC(a) tmp=0;
loop(n) %{
tmp += $a();
kung (!n || $a() > curmax) { curmax = $a();}
kung (!n || $a() < curmin) { curmin = $a();}
%}
$avg() = tmp/$SIZE(n);
$max() = curmax;
$min() = curmin;
'
);

pp_done();

Ang nasa itaas ay maaaring mukhang isang nakakalito na pinaghalong C at Perl, ngunit sa likod ng kakaiba
ang syntax ay isang napakalakas na wika. Gawin natin itong linya sa linya.

Ipinapahayag ng unang linya na sinisimulan namin ang kahulugan ng isang PDL:PP function na tinatawag
"quickstats" .

Napakahalaga ng pangalawang linya dahil tinutukoy nito ang mga parameter ng input at output ng
function. Sinasabi sa amin ng a(n) na mayroong isang parameter ng input na tutukuyin namin bilang "a"
na inaasahang maging isang vector ng haba n (gayundin ang mga matrice, parehong parisukat at
parihaba ay isusulat bilang "a(n,n)" at "a(n,m)" ayon sa pagkakabanggit). Para ipahiwatig iyon
ang isang bagay ay isang parameter ng output na inilalagay namin ang "[o]" sa harap ng kanilang mga pangalan, kaya nagre-refer pabalik
sa code nakita namin na ang avg, max at min ay tatlong parameter ng output, na lahat ay
scalar (dahil wala silang sukat na sukat na ipinahiwatig.

Ang ikatlong linya ay nagsisimula sa kahulugan ng code na mahalagang purong C ngunit may ilang
maginhawang function. Ang $GENERIC ay isang function na nagbabalik ng uri ng C ng argumento nito -
dito ang input parameter a. Kaya ang unang dalawang linya ng seksyon ng code ay variable
mga deklarasyon.

Ang loop(n) construct ay isang convenience function na umiikot sa dimensyon na tinatawag na n in
seksyon ng parameter. Sa loob ng loop na ito kinakalkula namin ang pinagsama-samang kabuuan ng input
vector at subaybayan ang maximum at minimum na mga halaga. Sa wakas ay itinalaga namin ang resulta
mga halaga sa mga parameter ng output.

Sa wakas natapos namin ang aming function na deklarasyon sa "pp_done()" .

Upang i-compile ang aming bagong function kailangan naming lumikha ng isang Makefile, na ililista na lang namin mula noon
ang paglikha nito ay tinalakay sa isang naunang tanong.

gumamit ng PDL::Core::Dev;
gumamit ng ExtUtils::MakeMaker;
PDL::Core::Dev->import();

$package = ["quickstats.pd",Quickstats,PDL::Quickstats];
%hash = pdlpp_stdargs($package);

WriteMakefile( %hash );

sub MY::postamble {pdlpp_postamble($package)};

Isang halimbawa Makefile.PL

Ang aming bagong statistic function ay dapat na ngayong mag-compile gamit ang sinubukan at nasubok na paraan ng Perl: "perl
Makefile.PL; gumawa" .

Dapat kang mag-eksperimento sa function na ito, binabago ang mga kalkulasyon at input at output
mga parameter. Kasabay ng PDL::PP perldoc page na ito ay dapat magpapahintulot sa iyo na mabilis
direktang sumulat ng mas advanced na mga gawain sa PDL::PP.

Gamitin ang PDL::FAQp online gamit ang mga serbisyo ng onworks.net


Mga Libreng Server at Workstation

Mag-download ng Windows at Linux apps

  • 1
    Libreng Pascal Compiler
    Libreng Pascal Compiler
    Isang 32/64/16-bit na Pascal compiler para sa
    Win32/64/CE, Linux, Mac OS X/iOS,
    Android, FreeBSD, OS/2, Game Boy
    Advance, Nintendo NDS at DOS;
    semantically compatible sa...
    I-download ang Libreng Pascal Compiler
  • 2
    Impormasyon ng Canon EOS DIGITAL
    Impormasyon ng Canon EOS DIGITAL
    Walang shutter count ang Canon
    kasama sa EXIF ​​na impormasyon ng isang
    file ng imahe, bilang kabaligtaran sa Nikon at
    Pentax. Walang opisyal na batay sa Canon
    aplikasyon...
    I-download ang Impormasyon ng Canon EOS DIGITAL
  • 3
    REFInd
    REFInd
    Ang rEFInd ay isang tinidor ng rEFIt boot
    manager. Tulad ng rEFIt, maaari ring i-REFInd
    auto-detect ang iyong naka-install na EFI boot
    loader at nagpapakita ito ng magandang GUI
    menu ng boot option...
    I-download ang reFInd
  • 4
    ExpressLuke GSI
    ExpressLuke GSI
    Ang pahina ng pag-download ng SourceForge ay upang
    bigyan ang mga user na i-download ang aking source na binuo
    Mga GSI, batay sa mahusay ni phhusson
    trabaho. Binubuo ko ang parehong Android Pie at
    Android 1...
    I-download ang ExpressLuke GSI
  • 5
    Music Caster
    Music Caster
    Ang Music Caster ay isang tray na music player
    na nagbibigay-daan sa iyong i-cast ang iyong lokal na musika sa a
    Google Cast device. Sa unang pagtakbo,
    kakailanganin mong i-click ang arrow sa iyong
    tas...
    I-download ang Music Caster
  • 6
    PyQt
    PyQt
    Ang PyQt ay ang Python bindings para sa
    Qt cross-platform ng Digia
    balangkas ng pagbuo ng aplikasyon. Ito
    sumusuporta sa Python v2 at v3 at Qt v4 at
    Qt v5. Available ang PyQt...
    I-download ang PyQt
  • Marami pa »

Linux command

Ad