Hello BrowserUk

Many many thanks for your reply.

Now that code is working fine. But actually i have downloaded a open source c project named pjproject-1.0.1. <href>http://www.pjsip.org/download.htm</href>. I have compiled and run it successfully in my Visual studio C++.

Now i want to use it in my perl program.

The code is as follows

#!C:\Perl\bin\perl.exe -w #Inline.pl no AutoLoader; use Inline ( C => 'DATA', INC => ' -IE:\pjproject-1.0.1\pjsip\include -IE:\pjproject-1.0.1\pjli +b\include -IE:\pjproject-1.0.1\pjlib-util\include -IE:\pjproject-1.0. +1\pjnath\include -IE:\pjproject-1.0.1\pjmedia\include', LIBS => '-LE:\pjproject-1.0.1\pjsip\lib -lpjsip-core-i386-win32-vc6-de +bug.lib -LE:\pjproject-1.0.1\pjsip\lib -lpjsip-simple-i386-win32-vc6- +debug.lib -LE:\pjproject-1.0.1\pjsip\lib -lpjsip-ua-i386-win32-vc6-de +bug.lib -LE:\pjproject-1.0.1\pjsip\lib -lpjsua-lib-i386-win32-vc6-deb +ug.lib -LE:\pjproject-1.0.1\pjlib\lib -lpjlib-i386-win32-vc6-debug.li +b -LE:\pjproject-1.0.1\pjlib\lib -lpjlib-i386-win32-vc6-debug.lib -LE +:\pjproject-1.0.1\pjlib-util\lib -lpjlib-util-i386-win32-vc6-debug.li +b -LE:\pjproject-1.0.1\pjnath\lib -lpjnath-i386-win32-vc6-debug.lib - +LE:\pjproject-1.0.1\pjmedia\lib -lpjmedia-codec-i386-win32-vc6-debug. +lib -LE:\pjproject-1.0.1\pjmedia\lib -lpjmedia-i386-win32-vc6-debug.l +ib'); @ARGV = ('www.abc.com'); main(scalar @ARGV, \@ARGV ); __DATA__ __C__ #define PJ_WIN32 1; #include <pjlib.h> #include <pjlib-util.h> #include <pjnath.h> #include <pjsip.h> #include <pjsip_ua.h> #include <pjsip_simple.h> #include <pjsua-lib/pjsua.h> #include <pjmedia.h> #include <pjmedia-codec.h> #include <pjsua-lib/pjsua.h> #define THIS_FILE "APP" #define SIP_DOMAIN "acti.com" #define SIP_USER "sanjay" #define SIP_PASSWD "sanjay" //start //end /* Callback called by the library upon receiving incoming call */ static void on_incoming_call(pjsua_acc_id acc_id, pjsua_call_id call_i +d, pjsip_rx_data *rdata) { pjsua_call_info ci; PJ_UNUSED_ARG(acc_id); PJ_UNUSED_ARG(rdata); pjsua_call_get_info(call_id, &ci); PJ_LOG(3,(THIS_FILE, "Incoming call from %.*s!!", (int)ci.remote_info.slen, ci.remote_info.ptr)); /* Automatically answer incoming calls with 200/OK */ pjsua_call_answer(call_id, 200, NULL, NULL); } /* Callback called by the library when call's state has changed */ static void on_call_state(pjsua_call_id call_id, pjsip_event *e) { pjsua_call_info ci; PJ_UNUSED_ARG(e); pjsua_call_get_info(call_id, &ci); PJ_LOG(3,(THIS_FILE, "Call %d state=%.*s", call_id, (int)ci.state_text.slen, ci.state_text.ptr)); } /* Callback called by the library when call's media state has changed +*/ static void on_call_media_state(pjsua_call_id call_id) { pjsua_call_info ci; pjsua_call_get_info(call_id, &ci); if (ci.media_status == PJSUA_CALL_MEDIA_ACTIVE) { // When media is active, connect call to sound device. pjsua_conf_connect(ci.conf_slot, 0); pjsua_conf_connect(0, ci.conf_slot); } } /* Display error and exit application */ static void error_exit(const char *title, pj_status_t status) { pjsua_perror(THIS_FILE, title, status); pjsua_destroy(); exit(1); } /* * main() * * argv[1] may contain URL to call. */ /* //int main(int argc, char *argv[]) the previous code //the perl specific code int main(int argc, AV *argv) { pjsua_acc_id acc_id; pj_status_t status; // Create pjsua first! status = pjsua_create(); if (status != PJ_SUCCESS) error_exit("Error in pjsua_create()", st +atus); // If argument is specified, it's got to be a valid SIP URL if (argc > 1) { status = pjsua_verify_sip_url(argv[1]); if (status != PJ_SUCCESS) error_exit("Invalid URL in argv", status +); } // Init pjsua { pjsua_config cfg; pjsua_logging_config log_cfg; pjsua_config_default(&cfg); cfg.cb.on_incoming_call = &on_incoming_call; cfg.cb.on_call_media_state = &on_call_media_state; cfg.cb.on_call_state = &on_call_state; pjsua_logging_config_default(&log_cfg); log_cfg.console_level = 4; status = pjsua_init(&cfg, &log_cfg, NULL); if (status != PJ_SUCCESS) error_exit("Error in pjsua_init()", stat +us); } // Add UDP transport. { pjsua_transport_config cfg; pjsua_transport_config_default(&cfg); cfg.port = 5060; status = pjsua_transport_create(PJSIP_TRANSPORT_UDP, &cfg, NULL); if (status != PJ_SUCCESS) error_exit("Error creating transport", s +tatus); } // Initialization is done, now start pjsua status = pjsua_start(); if (status != PJ_SUCCESS) error_exit("Error starting pjsua", statu +s); // Register to SIP server by creating SIP account. { pjsua_acc_config cfg; pjsua_acc_config_default(&cfg); cfg.id = pj_str("sip:" SIP_USER "@" SIP_DOMAIN); cfg.reg_uri = pj_str("sip:" SIP_DOMAIN); cfg.cred_count = 1; cfg.cred_info[0].realm = pj_str(acti.com); cfg.cred_info[0].scheme = pj_str("digest"); cfg.cred_info[0].username = pj_str(sanjay); cfg.cred_info[0].data_type = PJSIP_CRED_DATA_PLAIN_PASSWD; cfg.cred_info[0].data = pj_str(sanjay); status = pjsua_acc_add(&cfg, PJ_TRUE, &acc_id); if (status != PJ_SUCCESS) error_exit("Error adding account", statu +s); } // If URL is specified, make call to the URL. if (argc > 1) { pj_str_t uri = pj_str(argv[1]); status = pjsua_call_make_call(acc_id, &uri, 0, NULL, NULL, NULL); if (status != PJ_SUCCESS) error_exit("Error making call", status); } // Wait until user press "q" to quit. for (;;) { char option[10]; puts("Press 'h' to hangup all calls, 'q' to quit"); fgets(option, sizeof(option), stdin); if (option[0] == 'q') break; if (option[0] == 'h') pjsua_call_hangup_all(); } // Destroy pjsua pjsua_destroy(); return 0; }


when i want to run it in perl. I am getting error as follows.
E:\sanjayweb>perl response_aka.pl Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved. C:\Perl\bin\perl.exe C:\Perl\lib\ExtUtils\xsubpp -typemap C:\Perl\lib\E xtUtils\typemap response_aka_pl_f04e.xs > response_aka_pl_f04e.xsc && C:\Perl\b in\perl.exe -MExtUtils::Command -e mv response_aka_pl_f04e.xsc response_aka_pl_f 04e.c cl -c -IE:/sanjayweb -IE:\pjproject-1.0.1\pjsip\include -IE:\pjproject -1.0.1\pjlib\include -IE:\pjproject-1.0.1\pjlib-util\include -IE:\pjproject-1.0. 1\pjnath\include -IE:\pjproject-1.0.1\pjmedia\include -nologo -GF -W3 -MD -Zi - DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DNO_HASH_SEED -DUS E_SITECUSTOMIZE -DPRIVLIB_LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SY S -DUSE_PERLIO -DPERL_MSVCRT_READFIX -MD -Zi -DNDEBUG -O1 -DVERSION=\"0.00\" -DXS_VERSION=\"0.00\" "-IC:\Perl\lib\CORE" response_aka_pl_f04e.c response_aka_pl_f04e.c response_aka_pl_f04e.xs(103) : warning C4101: 'acc_id' : unreferenced local vari able Running Mkbootstrap for response_aka_pl_f04e () C:\Perl\bin\perl.exe -MExtUtils::Command -e chmod 644 response_aka_pl_f0 4e.bs C:\Perl\bin\perl.exe -MExtUtils::Mksymlists -e "Mksymlists('NAME'=>\"re sponse_aka_pl_f04e\", 'DLBASE' => 'response_aka_pl_f04e', 'DL_FUNCS' => { }, 'F UNCLIST' => [], 'IMPORTS' => { }, 'DL_VARS' => []);" link -out:blib\arch\auto\response_aka_pl_f04e\response_aka_pl_f04e.dll - dll -nologo -nodefaultlib -debug -opt:ref,icf -libpath:"C:\Perl\lib\CORE" -mac hine:x86 response_aka_pl_f04e.obj C:\Perl\lib\CORE\perl58.lib E:\pjproject-1.0 .1\pjsip\lib\pjsip-core-i386-win32-vc6-debug.lib E:\pjproject-1.0.1\pjsip\lib\pj sip-simple-i386-win32-vc6-debug.lib E:\pjproject-1.0.1\pjsip\lib\pjsip-ua-i386-w in32-vc6-debug.lib E:\pjproject-1.0.1\pjsip\lib\pjsua-lib-i386-win32-vc6-debug.l ib E:\pjproject-1.0.1\pjlib\lib\pjlib-i386-win32-vc6-debug.lib E:\pjproject-1.0. 1\pjlib\lib\pjlib-i386-win32-vc6-debug.lib E:\pjproject-1.0.1\pjlib-util\lib\pjl ib-util-i386-win32-vc6-debug.lib E:\pjproject-1.0.1\pjnath\lib\pjnath-i386-win32 -vc6-debug.lib E:\pjproject-1.0.1\pjmedia\lib\pjmedia-codec-i386-win32-vc6-debug .lib E:\pjproject-1.0.1\pjmedia\lib\pjmedia-i386-win32-vc6-debug.lib "E:\Program Files\Microsoft Visual Studio\VC98\lib\oldnames.lib" "E:\Program Files\Microsof t Visual Studio\VC98\lib\kernel32.lib" "E:\Program Files\Microsoft Visual Studio \VC98\lib\user32.lib" "E:\Program Files\Microsoft Visual Studio\VC98\lib\gdi32.l ib" "E:\Program Files\Microsoft Visual Studio\VC98\lib\winspool.lib" "E:\Program Files\Microsoft Visual Studio\VC98\lib\comdlg32.lib" "E:\Program Files\Microsof t Visual Studio\VC98\lib\advapi32.lib" "E:\Program Files\Microsoft Visual Studio \VC98\lib\shell32.lib" "E:\Program Files\Microsoft Visual Studio\VC98\lib\ole32. lib" "E:\Program Files\Microsoft Visual Studio\VC98\lib\oleaut32.lib" "E:\Progra m Files\Microsoft Visual Studio\VC98\lib\netapi32.lib" "E:\Program Files\Microso ft Visual Studio\VC98\lib\uuid.lib" "E:\Program Files\Microsoft Visual Studio\VC 98\lib\ws2_32.lib" "E:\Program Files\Microsoft Visual Studio\VC98\lib\mpr.lib" " E:\Program Files\Microsoft Visual Studio\VC98\lib\winmm.lib" "E:\Program Files\M icrosoft Visual Studio\VC98\lib\version.lib" "E:\Program Files\Microsoft Visual Studio\VC98\lib\odbc32.lib" "E:\Program Files\Microsoft Visual Studio\VC98\lib\o dbccp32.lib" "E:\Program Files\Microsoft Visual Studio\VC98\lib\msvcrt.lib" -def :response_aka_pl_f04e.def LINK : warning LNK4075: ignoring /EDITANDCONTINUE due to /OPT specification Creating library blib\arch\auto\response_aka_pl_f04e\response_aka_pl_f04e.lib and object blib\arch\auto\response_aka_pl_f04e\response_aka_pl_f04e.exp pjsip-ua-i386-win32-vc6-debug.lib(sip_100rel.obj) : error LNK2001: unresolved ex ternal symbol __pctype pjlib-util-i386-win32-vc6-debug.lib(scanner.obj) : error LNK2001: unresolved ext ernal symbol __pctype pjlib-util-i386-win32-vc6-debug.lib(string.obj) : error LNK2001: unresolved exte rnal symbol __pctype pjlib-i386-win32-vc6-debug.lib(string.obj) : error LNK2001: unresolved external symbol __pctype pjmedia-i386-win32-vc6-debug.lib(sdp.obj) : error LNK2001: unresolved external s ymbol __pctype pjmedia-i386-win32-vc6-debug.lib(session.obj) : error LNK2001: unresolved extern al symbol __pctype pjmedia-i386-win32-vc6-debug.lib(sdp_neg.obj) : error LNK2001: unresolved extern al symbol __pctype pjsip-ua-i386-win32-vc6-debug.lib(sip_100rel.obj) : error LNK2001: unresolved ex ternal symbol ___mb_cur_max pjlib-util-i386-win32-vc6-debug.lib(scanner.obj) : error LNK2001: unresolved ext ernal symbol ___mb_cur_max pjlib-util-i386-win32-vc6-debug.lib(string.obj) : error LNK2001: unresolved exte rnal symbol ___mb_cur_max pjlib-i386-win32-vc6-debug.lib(string.obj) : error LNK2001: unresolved external symbol ___mb_cur_max pjmedia-i386-win32-vc6-debug.lib(sdp.obj) : error LNK2001: unresolved external s ymbol ___mb_cur_max pjmedia-i386-win32-vc6-debug.lib(session.obj) : error LNK2001: unresolved extern al symbol ___mb_cur_max pjmedia-i386-win32-vc6-debug.lib(sdp_neg.obj) : error LNK2001: unresolved extern al symbol ___mb_cur_max pjmedia-codec-i386-win32-vc6-debug.lib(gsm.obj) : error LNK2001: unresolved exte rnal symbol _gsm_create pjmedia-codec-i386-win32-vc6-debug.lib(gsm.obj) : error LNK2001: unresolved exte rnal symbol _gsm_destroy pjmedia-codec-i386-win32-vc6-debug.lib(gsm.obj) : error LNK2001: unresolved exte rnal symbol _gsm_encode pjmedia-codec-i386-win32-vc6-debug.lib(gsm.obj) : error LNK2001: unresolved exte rnal symbol _gsm_decode pjmedia-codec-i386-win32-vc6-debug.lib(ilbc.obj) : error LNK2001: unresolved ext ernal symbol _initDecode pjmedia-codec-i386-win32-vc6-debug.lib(ilbc.obj) : error LNK2001: unresolved ext ernal symbol _initEncode pjmedia-codec-i386-win32-vc6-debug.lib(ilbc.obj) : error LNK2001: unresolved ext ernal symbol _iLBC_encode pjmedia-codec-i386-win32-vc6-debug.lib(ilbc.obj) : error LNK2001: unresolved ext ernal symbol _iLBC_decode pjmedia-codec-i386-win32-vc6-debug.lib(speex_codec.obj) : error LNK2001: unresol ved external symbol _speex_lib_get_mode pjmedia-codec-i386-win32-vc6-debug.lib(speex_codec.obj) : error LNK2001: unresol ved external symbol _speex_encoder_destroy pjmedia-codec-i386-win32-vc6-debug.lib(speex_codec.obj) : error LNK2001: unresol ved external symbol _speex_encoder_ctl pjmedia-codec-i386-win32-vc6-debug.lib(speex_codec.obj) : error LNK2001: unresol ved external symbol _speex_encoder_init pjmedia-codec-i386-win32-vc6-debug.lib(speex_codec.obj) : error LNK2001: unresol ved external symbol _speex_decoder_ctl pjmedia-codec-i386-win32-vc6-debug.lib(speex_codec.obj) : error LNK2001: unresol ved external symbol _speex_decoder_init pjmedia-codec-i386-win32-vc6-debug.lib(speex_codec.obj) : error LNK2001: unresol ved external symbol _speex_bits_init pjmedia-codec-i386-win32-vc6-debug.lib(speex_codec.obj) : error LNK2001: unresol ved external symbol _speex_decoder_destroy pjmedia-codec-i386-win32-vc6-debug.lib(speex_codec.obj) : error LNK2001: unresol ved external symbol _speex_bits_destroy pjmedia-codec-i386-win32-vc6-debug.lib(speex_codec.obj) : error LNK2001: unresol ved external symbol _speex_mode_query pjmedia-codec-i386-win32-vc6-debug.lib(speex_codec.obj) : error LNK2001: unresol ved external symbol _speex_nb_mode pjmedia-codec-i386-win32-vc6-debug.lib(speex_codec.obj) : error LNK2001: unresol ved external symbol _speex_bits_advance pjmedia-codec-i386-win32-vc6-debug.lib(speex_codec.obj) : error LNK2001: unresol ved external symbol _speex_bits_unpack_unsigned pjmedia-codec-i386-win32-vc6-debug.lib(speex_codec.obj) : error LNK2001: unresol ved external symbol _speex_bits_remaining pjmedia-codec-i386-win32-vc6-debug.lib(speex_codec.obj) : error LNK2001: unresol ved external symbol _speex_bits_read_from pjmedia-codec-i386-win32-vc6-debug.lib(speex_codec.obj) : error LNK2001: unresol ved external symbol _speex_bits_write pjmedia-codec-i386-win32-vc6-debug.lib(speex_codec.obj) : error LNK2001: unresol ved external symbol _speex_bits_nbytes pjmedia-codec-i386-win32-vc6-debug.lib(speex_codec.obj) : error LNK2001: unresol ved external symbol _speex_encode_int pjmedia-codec-i386-win32-vc6-debug.lib(speex_codec.obj) : error LNK2001: unresol ved external symbol _speex_bits_reset pjmedia-codec-i386-win32-vc6-debug.lib(speex_codec.obj) : error LNK2001: unresol ved external symbol _speex_decode_int pjmedia-i386-win32-vc6-debug.lib(transport_srtp.obj) : error LNK2001: unresolved external symbol _srtp_init pjmedia-i386-win32-vc6-debug.lib(transport_srtp.obj) : error LNK2001: unresolved external symbol _srtp_deinit pjmedia-i386-win32-vc6-debug.lib(transport_srtp.obj) : error LNK2001: unresolved external symbol _octet_string_hex_string pjmedia-i386-win32-vc6-debug.lib(transport_srtp.obj) : error LNK2001: unresolved external symbol _srtp_dealloc pjmedia-i386-win32-vc6-debug.lib(transport_srtp.obj) : error LNK2001: unresolved external symbol _srtp_create pjmedia-i386-win32-vc6-debug.lib(transport_srtp.obj) : error LNK2001: unresolved external symbol _srtp_protect pjmedia-i386-win32-vc6-debug.lib(transport_srtp.obj) : error LNK2001: unresolved external symbol _srtp_protect_rtcp pjmedia-i386-win32-vc6-debug.lib(transport_srtp.obj) : error LNK2001: unresolved external symbol _srtp_unprotect pjmedia-i386-win32-vc6-debug.lib(transport_srtp.obj) : error LNK2001: unresolved external symbol _srtp_unprotect_rtcp pjmedia-i386-win32-vc6-debug.lib(transport_srtp.obj) : error LNK2001: unresolved external symbol _crypto_get_random pjmedia-i386-win32-vc6-debug.lib(pasound.obj) : error LNK2001: unresolved extern al symbol _Pa_GetHostApiCount pjmedia-i386-win32-vc6-debug.lib(pasound.obj) : error LNK2001: unresolved extern al symbol _Pa_Initialize pjmedia-i386-win32-vc6-debug.lib(pasound.obj) : error LNK2001: unresolved extern al symbol _PaUtil_SetDebugPrintFunction pjmedia-i386-win32-vc6-debug.lib(pasound.obj) : error LNK2001: unresolved extern al symbol _Pa_GetDeviceCount pjmedia-i386-win32-vc6-debug.lib(pasound.obj) : error LNK2001: unresolved extern al symbol _Pa_GetDeviceInfo pjmedia-i386-win32-vc6-debug.lib(pasound.obj) : error LNK2001: unresolved extern al symbol _Pa_GetStreamInfo pjmedia-i386-win32-vc6-debug.lib(pasound.obj) : error LNK2001: unresolved extern al symbol _Pa_OpenStream pjmedia-i386-win32-vc6-debug.lib(pasound.obj) : error LNK2001: unresolved extern al symbol _Pa_GetHostApiInfo pjmedia-i386-win32-vc6-debug.lib(pasound.obj) : error LNK2001: unresolved extern al symbol _Pa_CloseStream pjmedia-i386-win32-vc6-debug.lib(pasound.obj) : error LNK2001: unresolved extern al symbol _Pa_StopStream pjmedia-i386-win32-vc6-debug.lib(pasound.obj) : error LNK2001: unresolved extern al symbol _Pa_StartStream pjmedia-i386-win32-vc6-debug.lib(pasound.obj) : error LNK2001: unresolved extern al symbol _Pa_Terminate pjmedia-i386-win32-vc6-debug.lib(errno.obj) : error LNK2001: unresolved external symbol _Pa_GetErrorText pjmedia-i386-win32-vc6-debug.lib(resample_resample.obj) : error LNK2001: unresol ved external symbol _res_GetXOFF pjmedia-i386-win32-vc6-debug.lib(resample_resample.obj) : error LNK2001: unresol ved external symbol _res_SrcLinear pjmedia-i386-win32-vc6-debug.lib(resample_resample.obj) : error LNK2001: unresol ved external symbol _res_Resample pjmedia-i386-win32-vc6-debug.lib(echo_speex.obj) : error LNK2001: unresolved ext ernal symbol _speex_preprocess_ctl pjmedia-i386-win32-vc6-debug.lib(echo_speex.obj) : error LNK2001: unresolved ext ernal symbol _speex_echo_state_destroy pjmedia-i386-win32-vc6-debug.lib(echo_speex.obj) : error LNK2001: unresolved ext ernal symbol _speex_preprocess_state_init pjmedia-i386-win32-vc6-debug.lib(echo_speex.obj) : error LNK2001: unresolved ext ernal symbol _speex_echo_ctl pjmedia-i386-win32-vc6-debug.lib(echo_speex.obj) : error LNK2001: unresolved ext ernal symbol _speex_echo_state_init pjmedia-i386-win32-vc6-debug.lib(echo_speex.obj) : error LNK2001: unresolved ext ernal symbol _speex_preprocess_state_destroy pjmedia-i386-win32-vc6-debug.lib(echo_speex.obj) : error LNK2001: unresolved ext ernal symbol _speex_echo_state_reset pjmedia-i386-win32-vc6-debug.lib(echo_speex.obj) : error LNK2001: unresolved ext ernal symbol _speex_preprocess_run pjmedia-i386-win32-vc6-debug.lib(echo_speex.obj) : error LNK2001: unresolved ext ernal symbol _speex_echo_cancellation blib\arch\auto\response_aka_pl_f04e\response_aka_pl_f04e.dll : fatal error LNK11 20: 65 unresolved externals NMAKE : fatal error U1077: '"E:\Program Files\Microsoft Visual Studio\VC98\bin\l ink.exe"' : return code '0x460' Stop. A problem was encountered while attempting to compile and install your Inline C code. The command that failed was: nmake > out.make 2>&1 The build directory was: E:\sanjayweb\_Inline\build\response_aka_pl_f04e To debug the problem, cd to the build directory, and inspect the output files. at response_aka.pl line 0 INIT failed--call queue aborted.

But the same code is working fine if i run it by using Visual studio C++.

Plz suggest what is the problem with it? It shows some linking errors.

i think it is due to some linking problem. I have set path to all includes and libraies to that pjproject. Still i am getting error. Plz suggest what is the problem with it? Is there any specific way to set path to includes and lib of any project.

Regd's
Sanjay

In reply to Re^2: Plz suggest what is the problem in the following code? by Anonymous Monk
in thread Plz suggest what is the problem in the following code? by sanjay nayak

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.